mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-19 02:11:15 +00:00
Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d72bb15956 | ||
|
89a34bac18 | ||
|
8cecdae8f9 | ||
|
471432fc50 | ||
|
a78e19608b | ||
|
5e97d56033 | ||
|
a5041ad43c | ||
|
3149a67599 | ||
|
d0b7927b51 | ||
|
8775684367 | ||
|
d148139227 | ||
|
dd2411d7d4 | ||
|
7db83dc0f1 | ||
|
787d950f28 | ||
|
892a819da4 | ||
|
bfc5eaebb9 | ||
|
e7d05df9fa | ||
|
ca07b52cb2 | ||
|
1a2a35f5bc | ||
|
d71514f23e | ||
|
c5af17e04e | ||
|
05e208ea2a | ||
|
112c557428 | ||
|
92db873b5c | ||
|
3c01eec4af | ||
|
5c6d18fcd4 | ||
|
84ec4b0de4 | ||
|
9615e7eaa0 | ||
|
6a244ff260 |
9
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
9
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
@@ -21,7 +21,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: Ventoy Version
|
label: Ventoy Version
|
||||||
description: What version of ventoy are you running?
|
description: What version of ventoy are you running?
|
||||||
placeholder: 1.0.49
|
placeholder: 1.0.51
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
@@ -63,6 +63,13 @@ body:
|
|||||||
placeholder: 32GB
|
placeholder: 32GB
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: vendor
|
||||||
|
attributes:
|
||||||
|
label: Disk Manufacturer
|
||||||
|
description: What is the manufacturer of the disk installed with Ventoy? (e.g. SanDisk/Kingston...)
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: checksum
|
id: checksum
|
||||||
attributes:
|
attributes:
|
||||||
|
@@ -1138,14 +1138,15 @@ EFI_STATUS EFIAPI ventoy_install_blockio(IN EFI_HANDLE ImageHandle, IN UINT64 Im
|
|||||||
{
|
{
|
||||||
gBlockData.Media.BlockSize = 512;
|
gBlockData.Media.BlockSize = 512;
|
||||||
gBlockData.Media.LastBlock = ImgSize / 512 - 1;
|
gBlockData.Media.LastBlock = ImgSize / 512 - 1;
|
||||||
|
gBlockData.Media.ReadOnly = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBlockData.Media.BlockSize = 2048;
|
gBlockData.Media.BlockSize = 2048;
|
||||||
gBlockData.Media.LastBlock = ImgSize / 2048 - 1;
|
gBlockData.Media.LastBlock = ImgSize / 2048 - 1;
|
||||||
|
gBlockData.Media.ReadOnly = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBlockData.Media.ReadOnly = TRUE;
|
|
||||||
gBlockData.Media.MediaPresent = 1;
|
gBlockData.Media.MediaPresent = 1;
|
||||||
gBlockData.Media.LogicalBlocksPerPhysicalBlock = 1;
|
gBlockData.Media.LogicalBlocksPerPhysicalBlock = 1;
|
||||||
|
|
||||||
|
1603
GRUB2/MOD_SRC/grub-2.04/grub-core/font/font.c
Normal file
1603
GRUB2/MOD_SRC/grub-2.04/grub-core/font/font.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -59,11 +59,15 @@ struct grub_gui_label
|
|||||||
grub_font_t font;
|
grub_font_t font;
|
||||||
grub_video_rgba_color_t color;
|
grub_video_rgba_color_t color;
|
||||||
int value;
|
int value;
|
||||||
|
int vtoytip;
|
||||||
enum align_mode align;
|
enum align_mode align;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct grub_gui_label *grub_gui_label_t;
|
typedef struct grub_gui_label *grub_gui_label_t;
|
||||||
|
|
||||||
|
extern const char * g_ventoy_tip_msg1;
|
||||||
|
extern const char * g_ventoy_tip_msg2;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
label_destroy (void *vself)
|
label_destroy (void *vself)
|
||||||
{
|
{
|
||||||
@@ -90,6 +94,7 @@ label_is_instance (void *vself __attribute__((unused)), const char *type)
|
|||||||
static void
|
static void
|
||||||
label_paint (void *vself, const grub_video_rect_t *region)
|
label_paint (void *vself, const grub_video_rect_t *region)
|
||||||
{
|
{
|
||||||
|
const char *text;
|
||||||
grub_gui_label_t self = vself;
|
grub_gui_label_t self = vself;
|
||||||
|
|
||||||
if (! self->visible)
|
if (! self->visible)
|
||||||
@@ -98,16 +103,24 @@ label_paint (void *vself, const grub_video_rect_t *region)
|
|||||||
if (!grub_video_have_common_points (region, &self->bounds))
|
if (!grub_video_have_common_points (region, &self->bounds))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (self->vtoytip == 1) {
|
||||||
|
text = g_ventoy_tip_msg1 ? g_ventoy_tip_msg1 : "";
|
||||||
|
} else if (self->vtoytip == 2) {
|
||||||
|
text = g_ventoy_tip_msg2 ? g_ventoy_tip_msg2 : "";
|
||||||
|
} else {
|
||||||
|
text = self->text;
|
||||||
|
}
|
||||||
|
|
||||||
/* Calculate the starting x coordinate. */
|
/* Calculate the starting x coordinate. */
|
||||||
int left_x;
|
int left_x;
|
||||||
if (self->align == align_left)
|
if (self->align == align_left)
|
||||||
left_x = 0;
|
left_x = 0;
|
||||||
else if (self->align == align_center)
|
else if (self->align == align_center)
|
||||||
left_x = (self->bounds.width
|
left_x = (self->bounds.width
|
||||||
- grub_font_get_string_width (self->font, self->text)) / 2;
|
- grub_font_get_string_width (self->font, text)) / 2;
|
||||||
else if (self->align == align_right)
|
else if (self->align == align_right)
|
||||||
left_x = (self->bounds.width
|
left_x = (self->bounds.width
|
||||||
- grub_font_get_string_width (self->font, self->text));
|
- grub_font_get_string_width (self->font, text));
|
||||||
else
|
else
|
||||||
return; /* Invalid alignment. */
|
return; /* Invalid alignment. */
|
||||||
|
|
||||||
@@ -116,7 +129,7 @@ label_paint (void *vself, const grub_video_rect_t *region)
|
|||||||
|
|
||||||
grub_video_rect_t vpsave;
|
grub_video_rect_t vpsave;
|
||||||
grub_gui_set_viewport (&self->bounds, &vpsave);
|
grub_gui_set_viewport (&self->bounds, &vpsave);
|
||||||
grub_font_draw_string (self->text,
|
grub_font_draw_string (text,
|
||||||
self->font,
|
self->font,
|
||||||
grub_video_map_rgba_color (self->color),
|
grub_video_map_rgba_color (self->color),
|
||||||
left_x,
|
left_x,
|
||||||
@@ -156,8 +169,8 @@ static void
|
|||||||
label_get_minimal_size (void *vself, unsigned *width, unsigned *height)
|
label_get_minimal_size (void *vself, unsigned *width, unsigned *height)
|
||||||
{
|
{
|
||||||
grub_gui_label_t self = vself;
|
grub_gui_label_t self = vself;
|
||||||
*width = grub_font_get_string_width (self->font, self->text);
|
*width = grub_font_get_string_width (self->font, self->text);
|
||||||
*height = (grub_font_get_ascent (self->font)
|
*height = (grub_font_get_ascent (self->font)
|
||||||
+ grub_font_get_descent (self->font));
|
+ grub_font_get_descent (self->font));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,8 +268,14 @@ label_set_property (void *vself, const char *name, const char *value)
|
|||||||
{
|
{
|
||||||
grub_gfxmenu_timeout_unregister ((grub_gui_component_t) self);
|
grub_gfxmenu_timeout_unregister ((grub_gui_component_t) self);
|
||||||
grub_free (self->id);
|
grub_free (self->id);
|
||||||
if (value)
|
if (value) {
|
||||||
self->id = grub_strdup (value);
|
self->id = grub_strdup (value);
|
||||||
|
if (grub_strcmp(value, "VTOY_MENU_TIP_1") == 0) {
|
||||||
|
self->vtoytip = 1;
|
||||||
|
} else if (grub_strcmp(value, "VTOY_MENU_TIP_2") == 0) {
|
||||||
|
self->vtoytip = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
self->id = 0;
|
self->id = 0;
|
||||||
if (self->id && grub_strcmp (self->id, GRUB_GFXMENU_TIMEOUT_COMPONENT_ID)
|
if (self->id && grub_strcmp (self->id, GRUB_GFXMENU_TIMEOUT_COMPONENT_ID)
|
||||||
|
@@ -733,6 +733,8 @@ done:
|
|||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int g_menu_update_mode;
|
||||||
|
|
||||||
/* Set properties on the view based on settings from the specified
|
/* Set properties on the view based on settings from the specified
|
||||||
theme file. */
|
theme file. */
|
||||||
grub_err_t
|
grub_err_t
|
||||||
@@ -752,7 +754,7 @@ grub_gfxmenu_view_load_theme (grub_gfxmenu_view_t view, const char *theme_path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
p.len = grub_file_size (file);
|
p.len = grub_file_size (file);
|
||||||
p.buf = grub_malloc (p.len + 4096);
|
p.buf = grub_malloc (p.len + 8192);
|
||||||
p.pos = 0;
|
p.pos = 0;
|
||||||
p.line_num = 1;
|
p.line_num = 1;
|
||||||
p.col_num = 1;
|
p.col_num = 1;
|
||||||
@@ -781,6 +783,33 @@ grub_gfxmenu_view_load_theme (grub_gfxmenu_view_t view, const char *theme_path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const char *tip = grub_env_get("VTOY_MENU_TIP_ENABLE");
|
||||||
|
if (tip && tip[0] == '1')
|
||||||
|
{
|
||||||
|
char tmpmsg[512];
|
||||||
|
|
||||||
|
grub_memset(tmpmsg, 'w', 500);
|
||||||
|
tmpmsg[500] = 0;
|
||||||
|
|
||||||
|
g_menu_update_mode = 1;
|
||||||
|
p.len += grub_snprintf(p.buf + p.len, 4096,
|
||||||
|
"\n+ vbox{\n left = %s\n top = %s\n"
|
||||||
|
"+ label { id=\"VTOY_MENU_TIP_1\" text = \"%s\" color = \"%s\" align = \"%s\"}\n"
|
||||||
|
"+ label { id=\"VTOY_MENU_TIP_2\" text = \"%s\" color = \"%s\" align = \"%s\"}\n"
|
||||||
|
"}\n",
|
||||||
|
grub_env_get("VTOY_TIP_LEFT"),
|
||||||
|
grub_env_get("VTOY_TIP_TOP"),
|
||||||
|
tmpmsg,
|
||||||
|
grub_env_get("VTOY_TIP_COLOR"),
|
||||||
|
grub_env_get("VTOY_TIP_ALIGN"),
|
||||||
|
tmpmsg,
|
||||||
|
grub_env_get("VTOY_TIP_COLOR"),
|
||||||
|
grub_env_get("VTOY_TIP_ALIGN")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (view->canvas)
|
if (view->canvas)
|
||||||
view->canvas->component.ops->destroy (view->canvas);
|
view->canvas->component.ops->destroy (view->canvas);
|
||||||
|
|
||||||
|
@@ -386,21 +386,37 @@ redraw_menu_visit (grub_gui_component_t component,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int g_menu_update_mode;
|
||||||
|
|
||||||
|
static void grub_gfxmenu_update_all(grub_gfxmenu_view_t view)
|
||||||
|
{
|
||||||
|
grub_video_set_area_status(GRUB_VIDEO_AREA_DISABLED);
|
||||||
|
grub_gfxmenu_view_redraw(view, &view->screen);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
grub_gfxmenu_redraw_menu (grub_gfxmenu_view_t view)
|
grub_gfxmenu_redraw_menu (grub_gfxmenu_view_t view)
|
||||||
{
|
{
|
||||||
update_menu_components (view);
|
update_menu_components (view);
|
||||||
|
|
||||||
grub_gui_iterate_recursively ((grub_gui_component_t) view->canvas,
|
if (g_menu_update_mode)
|
||||||
redraw_menu_visit, view);
|
grub_gfxmenu_update_all(view);
|
||||||
|
else
|
||||||
|
grub_gui_iterate_recursively ((grub_gui_component_t) view->canvas,
|
||||||
|
redraw_menu_visit, view);
|
||||||
|
|
||||||
grub_video_swap_buffers ();
|
grub_video_swap_buffers ();
|
||||||
if (view->double_repaint)
|
if (view->double_repaint)
|
||||||
{
|
{
|
||||||
grub_gui_iterate_recursively ((grub_gui_component_t) view->canvas,
|
if (g_menu_update_mode)
|
||||||
redraw_menu_visit, view);
|
grub_gfxmenu_update_all(view);
|
||||||
|
else
|
||||||
|
grub_gui_iterate_recursively ((grub_gui_component_t) view->canvas,
|
||||||
|
redraw_menu_visit, view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
grub_gfxmenu_set_chosen_entry (int entry, void *data)
|
grub_gfxmenu_set_chosen_entry (int entry, void *data)
|
||||||
{
|
{
|
||||||
@@ -408,6 +424,8 @@ grub_gfxmenu_set_chosen_entry (int entry, void *data)
|
|||||||
|
|
||||||
view->selected = entry;
|
view->selected = entry;
|
||||||
grub_gfxmenu_redraw_menu (view);
|
grub_gfxmenu_redraw_menu (view);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -279,6 +279,13 @@ static int ventoy_boot_opt_filter(char *opt)
|
|||||||
opt[1] = 't';
|
opt[1] = 't';
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grub_strncmp(opt, "dm=", 3) == 0)
|
||||||
|
{
|
||||||
|
opt[0] = 'D';
|
||||||
|
opt[1] = 'M';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (ventoy_debug)
|
if (ventoy_debug)
|
||||||
{
|
{
|
||||||
|
@@ -506,6 +506,13 @@ static int ventoy_boot_opt_filter(char *opt)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grub_strncmp(opt, "dm=", 3) == 0)
|
||||||
|
{
|
||||||
|
opt[0] = 'D';
|
||||||
|
opt[1] = 'M';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (ventoy_debug)
|
if (ventoy_debug)
|
||||||
{
|
{
|
||||||
if (grub_strcmp(opt, "quiet") == 0)
|
if (grub_strcmp(opt, "quiet") == 0)
|
||||||
|
@@ -228,6 +228,13 @@ static int ventoy_boot_opt_filter(char *opt)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grub_strncmp(opt, "dm=", 3) == 0)
|
||||||
|
{
|
||||||
|
opt[0] = 'D';
|
||||||
|
opt[1] = 'M';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (ventoy_debug)
|
if (ventoy_debug)
|
||||||
{
|
{
|
||||||
if (grub_strcmp(opt, "quiet") == 0)
|
if (grub_strcmp(opt, "quiet") == 0)
|
||||||
|
@@ -33,6 +33,9 @@
|
|||||||
#include <grub/gfxterm.h>
|
#include <grub/gfxterm.h>
|
||||||
#include <grub/dl.h>
|
#include <grub/dl.h>
|
||||||
#include <grub/env.h>
|
#include <grub/env.h>
|
||||||
|
#include <grub/extcmd.h>
|
||||||
|
#include <grub/ventoy.h>
|
||||||
|
#include "ventoy/ventoy_def.h"
|
||||||
|
|
||||||
int g_ventoy_menu_refresh = 0;
|
int g_ventoy_menu_refresh = 0;
|
||||||
int g_ventoy_memdisk_mode = 0;
|
int g_ventoy_memdisk_mode = 0;
|
||||||
@@ -381,10 +384,28 @@ grub_menu_execute_with_fallback (grub_menu_t menu,
|
|||||||
|
|
||||||
static struct grub_menu_viewer *viewers;
|
static struct grub_menu_viewer *viewers;
|
||||||
|
|
||||||
|
int g_menu_update_mode = 0;
|
||||||
|
int g_ventoy_tip_label_enable = 0;
|
||||||
|
const char * g_ventoy_tip_msg1 = NULL;
|
||||||
|
const char * g_ventoy_tip_msg2 = NULL;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
menu_set_chosen_entry (int entry)
|
menu_set_chosen_entry (grub_menu_t menu, int entry)
|
||||||
{
|
{
|
||||||
struct grub_menu_viewer *cur;
|
struct grub_menu_viewer *cur;
|
||||||
|
img_info *img;
|
||||||
|
grub_menu_entry_t e = grub_menu_get_entry (menu, entry);
|
||||||
|
|
||||||
|
g_ventoy_tip_msg1 = g_ventoy_tip_msg2 = NULL;
|
||||||
|
if (e && e->id && grub_strncmp(e->id, "VID_", 4) == 0) {
|
||||||
|
img = (img_info *)(void *)grub_strtoul(e->id + 4, NULL, 16);
|
||||||
|
if (img)
|
||||||
|
{
|
||||||
|
g_ventoy_tip_msg1 = img->tip1;
|
||||||
|
g_ventoy_tip_msg2 = img->tip2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (cur = viewers; cur; cur = cur->next)
|
for (cur = viewers; cur; cur = cur->next)
|
||||||
cur->set_chosen_entry (entry, cur->data);
|
cur->set_chosen_entry (entry, cur->data);
|
||||||
}
|
}
|
||||||
@@ -732,13 +753,13 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
|||||||
case GRUB_TERM_KEY_HOME:
|
case GRUB_TERM_KEY_HOME:
|
||||||
case GRUB_TERM_CTRL | 'a':
|
case GRUB_TERM_CTRL | 'a':
|
||||||
current_entry = 0;
|
current_entry = 0;
|
||||||
menu_set_chosen_entry (current_entry);
|
menu_set_chosen_entry (menu, current_entry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRUB_TERM_KEY_END:
|
case GRUB_TERM_KEY_END:
|
||||||
case GRUB_TERM_CTRL | 'e':
|
case GRUB_TERM_CTRL | 'e':
|
||||||
current_entry = menu->size - 1;
|
current_entry = menu->size - 1;
|
||||||
menu_set_chosen_entry (current_entry);
|
menu_set_chosen_entry (menu, current_entry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRUB_TERM_KEY_UP:
|
case GRUB_TERM_KEY_UP:
|
||||||
@@ -746,7 +767,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
|||||||
case '^':
|
case '^':
|
||||||
if (current_entry > 0)
|
if (current_entry > 0)
|
||||||
current_entry--;
|
current_entry--;
|
||||||
menu_set_chosen_entry (current_entry);
|
menu_set_chosen_entry (menu, current_entry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRUB_TERM_CTRL | 'n':
|
case GRUB_TERM_CTRL | 'n':
|
||||||
@@ -754,7 +775,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
|||||||
case 'v':
|
case 'v':
|
||||||
if (current_entry < menu->size - 1)
|
if (current_entry < menu->size - 1)
|
||||||
current_entry++;
|
current_entry++;
|
||||||
menu_set_chosen_entry (current_entry);
|
menu_set_chosen_entry (menu, current_entry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRUB_TERM_CTRL | 'g':
|
case GRUB_TERM_CTRL | 'g':
|
||||||
@@ -763,7 +784,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
|||||||
current_entry = 0;
|
current_entry = 0;
|
||||||
else
|
else
|
||||||
current_entry -= GRUB_MENU_PAGE_SIZE;
|
current_entry -= GRUB_MENU_PAGE_SIZE;
|
||||||
menu_set_chosen_entry (current_entry);
|
menu_set_chosen_entry (menu, current_entry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GRUB_TERM_CTRL | 'c':
|
case GRUB_TERM_CTRL | 'c':
|
||||||
@@ -772,7 +793,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
|||||||
current_entry += GRUB_MENU_PAGE_SIZE;
|
current_entry += GRUB_MENU_PAGE_SIZE;
|
||||||
else
|
else
|
||||||
current_entry = menu->size - 1;
|
current_entry = menu->size - 1;
|
||||||
menu_set_chosen_entry (current_entry);
|
menu_set_chosen_entry (menu, current_entry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '\n':
|
case '\n':
|
||||||
|
232
GRUB2/MOD_SRC/grub-2.04/grub-core/partmap/gpt.c
Normal file
232
GRUB2/MOD_SRC/grub-2.04/grub-core/partmap/gpt.c
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
/* gpt.c - Read GUID Partition Tables (GPT). */
|
||||||
|
/*
|
||||||
|
* GRUB -- GRand Unified Bootloader
|
||||||
|
* Copyright (C) 2002,2005,2006,2007,2008 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* GRUB is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GRUB is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <grub/disk.h>
|
||||||
|
#include <grub/misc.h>
|
||||||
|
#include <grub/mm.h>
|
||||||
|
#include <grub/partition.h>
|
||||||
|
#include <grub/dl.h>
|
||||||
|
#include <grub/msdos_partition.h>
|
||||||
|
#include <grub/gpt_partition.h>
|
||||||
|
#include <grub/i18n.h>
|
||||||
|
|
||||||
|
GRUB_MOD_LICENSE ("GPLv3+");
|
||||||
|
|
||||||
|
static grub_uint8_t grub_gpt_magic[8] =
|
||||||
|
{
|
||||||
|
0x45, 0x46, 0x49, 0x20, 0x50, 0x41, 0x52, 0x54
|
||||||
|
};
|
||||||
|
|
||||||
|
static const grub_gpt_part_guid_t grub_gpt_partition_type_empty = GRUB_GPT_PARTITION_TYPE_EMPTY;
|
||||||
|
|
||||||
|
#ifdef GRUB_UTIL
|
||||||
|
static const grub_gpt_part_guid_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* 512 << 7 = 65536 byte sectors. */
|
||||||
|
#define MAX_SECTOR_LOG 7
|
||||||
|
|
||||||
|
static struct grub_partition_map grub_gpt_partition_map;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
grub_err_t
|
||||||
|
grub_gpt_partition_map_iterate (grub_disk_t disk,
|
||||||
|
grub_partition_iterate_hook_t hook,
|
||||||
|
void *hook_data)
|
||||||
|
{
|
||||||
|
struct grub_partition part;
|
||||||
|
struct grub_gpt_header gpt;
|
||||||
|
struct grub_gpt_partentry entry;
|
||||||
|
struct grub_msdos_partition_mbr mbr;
|
||||||
|
grub_uint64_t entries;
|
||||||
|
unsigned int i;
|
||||||
|
int last_offset = 0;
|
||||||
|
int sector_log = 0;
|
||||||
|
|
||||||
|
/* Read the protective MBR. */
|
||||||
|
if (grub_disk_read (disk, 0, 0, sizeof (mbr), &mbr))
|
||||||
|
return grub_errno;
|
||||||
|
|
||||||
|
/* Check if it is valid. */
|
||||||
|
if (mbr.signature != grub_cpu_to_le16_compile_time (GRUB_PC_PARTITION_SIGNATURE))
|
||||||
|
return grub_error (GRUB_ERR_BAD_PART_TABLE, "no signature");
|
||||||
|
|
||||||
|
/* Make sure the MBR is a protective MBR and not a normal MBR. */
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
if (mbr.entries[i].type == GRUB_PC_PARTITION_TYPE_GPT_DISK)
|
||||||
|
break;
|
||||||
|
if (i == 4)
|
||||||
|
return grub_error (GRUB_ERR_BAD_PART_TABLE, "no GPT partition map found");
|
||||||
|
|
||||||
|
/* Read the GPT header. */
|
||||||
|
for (sector_log = 0; sector_log < MAX_SECTOR_LOG; sector_log++)
|
||||||
|
{
|
||||||
|
if (grub_disk_read (disk, 1 << sector_log, 0, sizeof (gpt), &gpt))
|
||||||
|
return grub_errno;
|
||||||
|
|
||||||
|
if (grub_memcmp (gpt.magic, grub_gpt_magic, sizeof (grub_gpt_magic)) == 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (sector_log == MAX_SECTOR_LOG)
|
||||||
|
return grub_error (GRUB_ERR_BAD_PART_TABLE, "no valid GPT header");
|
||||||
|
|
||||||
|
grub_dprintf ("gpt", "Read a valid GPT header\n");
|
||||||
|
|
||||||
|
entries = grub_le_to_cpu64 (gpt.partitions) << sector_log;
|
||||||
|
for (i = 0; i < grub_le_to_cpu32 (gpt.maxpart); i++)
|
||||||
|
{
|
||||||
|
if (grub_disk_read (disk, entries, last_offset,
|
||||||
|
sizeof (entry), &entry))
|
||||||
|
return grub_errno;
|
||||||
|
|
||||||
|
if (grub_memcmp (&grub_gpt_partition_type_empty, &entry.type,
|
||||||
|
sizeof (grub_gpt_partition_type_empty)))
|
||||||
|
{
|
||||||
|
/* Calculate the first block and the size of the partition. */
|
||||||
|
part.start = grub_le_to_cpu64 (entry.start) << sector_log;
|
||||||
|
part.len = (grub_le_to_cpu64 (entry.end)
|
||||||
|
- grub_le_to_cpu64 (entry.start) + 1) << sector_log;
|
||||||
|
part.offset = entries;
|
||||||
|
part.number = i;
|
||||||
|
part.index = last_offset;
|
||||||
|
part.partmap = &grub_gpt_partition_map;
|
||||||
|
part.parent = disk->partition;
|
||||||
|
part.gpt_attrib = entry.attrib;
|
||||||
|
|
||||||
|
grub_dprintf ("gpt", "GPT entry %d: start=%lld, length=%lld\n", i,
|
||||||
|
(unsigned long long) part.start,
|
||||||
|
(unsigned long long) part.len);
|
||||||
|
|
||||||
|
if (hook (disk, &part, hook_data))
|
||||||
|
return grub_errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
last_offset += grub_le_to_cpu32 (gpt.partentry_size);
|
||||||
|
if (last_offset == GRUB_DISK_SECTOR_SIZE)
|
||||||
|
{
|
||||||
|
last_offset = 0;
|
||||||
|
entries++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return GRUB_ERR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GRUB_UTIL
|
||||||
|
/* Context for gpt_partition_map_embed. */
|
||||||
|
struct gpt_partition_map_embed_ctx
|
||||||
|
{
|
||||||
|
grub_disk_addr_t start, len;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Helper for gpt_partition_map_embed. */
|
||||||
|
static int
|
||||||
|
find_usable_region (grub_disk_t disk __attribute__ ((unused)),
|
||||||
|
const grub_partition_t p, void *data)
|
||||||
|
{
|
||||||
|
struct gpt_partition_map_embed_ctx *ctx = data;
|
||||||
|
struct grub_gpt_partentry gptdata;
|
||||||
|
grub_partition_t p2;
|
||||||
|
|
||||||
|
p2 = disk->partition;
|
||||||
|
disk->partition = p->parent;
|
||||||
|
if (grub_disk_read (disk, p->offset, p->index,
|
||||||
|
sizeof (gptdata), &gptdata))
|
||||||
|
{
|
||||||
|
disk->partition = p2;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
disk->partition = p2;
|
||||||
|
|
||||||
|
/* If there's an embed region, it is in a dedicated partition. */
|
||||||
|
if (! grub_memcmp (&gptdata.type, &grub_gpt_partition_type_bios_boot, 16))
|
||||||
|
{
|
||||||
|
ctx->start = p->start;
|
||||||
|
ctx->len = p->len;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static grub_err_t
|
||||||
|
gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors,
|
||||||
|
unsigned int max_nsectors,
|
||||||
|
grub_embed_type_t embed_type,
|
||||||
|
grub_disk_addr_t **sectors)
|
||||||
|
{
|
||||||
|
struct gpt_partition_map_embed_ctx ctx = {
|
||||||
|
.start = 0,
|
||||||
|
.len = 0
|
||||||
|
};
|
||||||
|
unsigned i;
|
||||||
|
grub_err_t err;
|
||||||
|
|
||||||
|
if (embed_type != GRUB_EMBED_PCBIOS)
|
||||||
|
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||||
|
"GPT currently supports only PC-BIOS embedding");
|
||||||
|
|
||||||
|
err = grub_gpt_partition_map_iterate (disk, find_usable_region, &ctx);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
if (ctx.len == 0)
|
||||||
|
return grub_error (GRUB_ERR_FILE_NOT_FOUND,
|
||||||
|
N_("this GPT partition label contains no BIOS Boot Partition;"
|
||||||
|
" embedding won't be possible"));
|
||||||
|
|
||||||
|
if (ctx.len < *nsectors)
|
||||||
|
return grub_error (GRUB_ERR_OUT_OF_RANGE,
|
||||||
|
N_("your BIOS Boot Partition is too small;"
|
||||||
|
" embedding won't be possible"));
|
||||||
|
|
||||||
|
*nsectors = ctx.len;
|
||||||
|
if (*nsectors > max_nsectors)
|
||||||
|
*nsectors = max_nsectors;
|
||||||
|
*sectors = grub_malloc (*nsectors * sizeof (**sectors));
|
||||||
|
if (!*sectors)
|
||||||
|
return grub_errno;
|
||||||
|
for (i = 0; i < *nsectors; i++)
|
||||||
|
(*sectors)[i] = ctx.start + i;
|
||||||
|
|
||||||
|
return GRUB_ERR_NONE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Partition map type. */
|
||||||
|
static struct grub_partition_map grub_gpt_partition_map =
|
||||||
|
{
|
||||||
|
.name = "gpt",
|
||||||
|
.iterate = grub_gpt_partition_map_iterate,
|
||||||
|
#ifdef GRUB_UTIL
|
||||||
|
.embed = gpt_partition_map_embed
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
GRUB_MOD_INIT(part_gpt)
|
||||||
|
{
|
||||||
|
grub_partition_map_register (&grub_gpt_partition_map);
|
||||||
|
}
|
||||||
|
|
||||||
|
GRUB_MOD_FINI(part_gpt)
|
||||||
|
{
|
||||||
|
grub_partition_map_unregister (&grub_gpt_partition_map);
|
||||||
|
}
|
@@ -145,6 +145,8 @@ const char *g_menu_prefix[img_type_max] =
|
|||||||
static int g_vtoy_load_prompt = 0;
|
static int g_vtoy_load_prompt = 0;
|
||||||
static char g_vtoy_prompt_msg[64];
|
static char g_vtoy_prompt_msg[64];
|
||||||
|
|
||||||
|
static char g_json_case_mis_path[32];
|
||||||
|
|
||||||
static int ventoy_get_fs_type(const char *fs)
|
static int ventoy_get_fs_type(const char *fs)
|
||||||
{
|
{
|
||||||
if (NULL == fs)
|
if (NULL == fs)
|
||||||
@@ -1560,6 +1562,7 @@ static int ventoy_collect_img_files(const char *filename, const struct grub_dirh
|
|||||||
grub_size_t len;
|
grub_size_t len;
|
||||||
img_info *img;
|
img_info *img;
|
||||||
img_info *tail;
|
img_info *tail;
|
||||||
|
const menu_tip *tip;
|
||||||
img_iterator_node *tmp;
|
img_iterator_node *tmp;
|
||||||
img_iterator_node *new_node;
|
img_iterator_node *new_node;
|
||||||
img_iterator_node *node = (img_iterator_node *)data;
|
img_iterator_node *node = (img_iterator_node *)data;
|
||||||
@@ -1777,6 +1780,14 @@ static int ventoy_collect_img_files(const char *filename, const struct grub_dirh
|
|||||||
g_ventoy_img_count++;
|
g_ventoy_img_count++;
|
||||||
|
|
||||||
img->alias = ventoy_plugin_get_menu_alias(vtoy_alias_image_file, img->path);
|
img->alias = ventoy_plugin_get_menu_alias(vtoy_alias_image_file, img->path);
|
||||||
|
|
||||||
|
tip = ventoy_plugin_get_menu_tip(img->path);
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
img->tip1 = tip->tip1;
|
||||||
|
img->tip2 = tip->tip2;
|
||||||
|
}
|
||||||
|
|
||||||
img->class = ventoy_plugin_get_menu_class(vtoy_class_image_file, img->name, img->path);
|
img->class = ventoy_plugin_get_menu_class(vtoy_class_image_file, img->name, img->path);
|
||||||
if (!img->class)
|
if (!img->class)
|
||||||
{
|
{
|
||||||
@@ -2071,23 +2082,23 @@ static int ventoy_dynamic_tree_menu(img_iterator_node *node)
|
|||||||
if (g_tree_view_menu_style == 0)
|
if (g_tree_view_menu_style == 0)
|
||||||
{
|
{
|
||||||
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos,
|
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos,
|
||||||
"menuentry \"%-10s %s%s\" --class=\"%s\" --id=\"VID_%d\" {\n"
|
"menuentry \"%-10s %s%s\" --class=\"%s\" --id=\"VID_%p\" {\n"
|
||||||
" %s_%s \n"
|
" %s_%s \n"
|
||||||
"}\n",
|
"}\n",
|
||||||
grub_get_human_size(img->size, GRUB_HUMAN_SIZE_SHORT),
|
grub_get_human_size(img->size, GRUB_HUMAN_SIZE_SHORT),
|
||||||
img->unsupport ? "[***********] " : "",
|
img->unsupport ? "[***********] " : "",
|
||||||
img->alias ? img->alias : img->name, img->class, img->id,
|
img->alias ? img->alias : img->name, img->class, img,
|
||||||
img->menu_prefix,
|
img->menu_prefix,
|
||||||
img->unsupport ? "unsupport_menuentry" : "common_menuentry");
|
img->unsupport ? "unsupport_menuentry" : "common_menuentry");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos,
|
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos,
|
||||||
"menuentry \"%s%s\" --class=\"%s\" --id=\"VID_%d\" {\n"
|
"menuentry \"%s%s\" --class=\"%s\" --id=\"VID_%p\" {\n"
|
||||||
" %s_%s \n"
|
" %s_%s \n"
|
||||||
"}\n",
|
"}\n",
|
||||||
img->unsupport ? "[***********] " : "",
|
img->unsupport ? "[***********] " : "",
|
||||||
img->alias ? img->alias : img->name, img->class, img->id,
|
img->alias ? img->alias : img->name, img->class, img,
|
||||||
img->menu_prefix,
|
img->menu_prefix,
|
||||||
img->unsupport ? "unsupport_menuentry" : "common_menuentry");
|
img->unsupport ? "unsupport_menuentry" : "common_menuentry");
|
||||||
}
|
}
|
||||||
@@ -2134,7 +2145,7 @@ static int ventoy_set_default_menu(void)
|
|||||||
|
|
||||||
if (0 == g_default_menu_mode)
|
if (0 == g_default_menu_mode)
|
||||||
{
|
{
|
||||||
vtoy_ssprintf(g_list_script_buf, g_list_script_pos, "set default='VID_%d'\n", default_node->id);
|
vtoy_ssprintf(g_list_script_buf, g_list_script_pos, "set default='VID_%p'\n", default_node);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -2167,7 +2178,7 @@ static int ventoy_set_default_menu(void)
|
|||||||
pos = end + 1;
|
pos = end + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos, "VID_%d'\n", default_node->id);
|
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos, "VID_%p'\n", default_node);
|
||||||
grub_free(def);
|
grub_free(def);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2264,7 +2275,7 @@ static grub_err_t ventoy_cmd_ext_select_img_path(grub_extcmd_context_t ctxt, int
|
|||||||
return grub_error(GRUB_ERR_BAD_ARGUMENT, "No such image");
|
return grub_error(GRUB_ERR_BAD_ARGUMENT, "No such image");
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_snprintf(id, sizeof(id), "VID_%d", cur->id);
|
grub_snprintf(id, sizeof(id), "VID_%p", cur);
|
||||||
grub_env_set("chosen", id);
|
grub_env_set("chosen", id);
|
||||||
grub_env_export("chosen");
|
grub_env_export("chosen");
|
||||||
|
|
||||||
@@ -2273,11 +2284,10 @@ static grub_err_t ventoy_cmd_ext_select_img_path(grub_extcmd_context_t ctxt, int
|
|||||||
|
|
||||||
static grub_err_t ventoy_cmd_chosen_img_path(grub_extcmd_context_t ctxt, int argc, char **args)
|
static grub_err_t ventoy_cmd_chosen_img_path(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
int img_id = 0;
|
|
||||||
char value[32];
|
char value[32];
|
||||||
char *pos = NULL;
|
char *pos = NULL;
|
||||||
const char *id = NULL;
|
const char *id = NULL;
|
||||||
img_info *cur = g_ventoy_img_list;
|
img_info *cur = NULL;
|
||||||
|
|
||||||
(void)ctxt;
|
(void)ctxt;
|
||||||
|
|
||||||
@@ -2291,20 +2301,11 @@ static grub_err_t ventoy_cmd_chosen_img_path(grub_extcmd_context_t ctxt, int arg
|
|||||||
pos = grub_strstr(id, "VID_");
|
pos = grub_strstr(id, "VID_");
|
||||||
if (pos)
|
if (pos)
|
||||||
{
|
{
|
||||||
img_id = (int)grub_strtoul(pos + 4, NULL, 10);
|
cur = (img_info *)(void *)grub_strtoul(pos + 4, NULL, 16);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
img_id = (int)grub_strtoul(id, NULL, 10);
|
cur = g_ventoy_img_list;
|
||||||
}
|
|
||||||
|
|
||||||
while (cur)
|
|
||||||
{
|
|
||||||
if (img_id == cur->id)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cur = cur->next;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cur)
|
if (!cur)
|
||||||
@@ -2333,12 +2334,14 @@ static grub_err_t ventoy_cmd_list_img(grub_extcmd_context_t ctxt, int argc, char
|
|||||||
grub_device_t dev = NULL;
|
grub_device_t dev = NULL;
|
||||||
img_info *cur = NULL;
|
img_info *cur = NULL;
|
||||||
img_info *tail = NULL;
|
img_info *tail = NULL;
|
||||||
|
img_info *min = NULL;
|
||||||
|
img_info *head = NULL;
|
||||||
const char *strdata = NULL;
|
const char *strdata = NULL;
|
||||||
char *device_name = NULL;
|
char *device_name = NULL;
|
||||||
char buf[32];
|
char buf[32];
|
||||||
img_iterator_node *node = NULL;
|
img_iterator_node *node = NULL;
|
||||||
img_iterator_node *tmp = NULL;
|
img_iterator_node *tmp = NULL;
|
||||||
|
|
||||||
(void)ctxt;
|
(void)ctxt;
|
||||||
|
|
||||||
if (argc != 2)
|
if (argc != 2)
|
||||||
@@ -2468,17 +2471,49 @@ static grub_err_t ventoy_cmd_list_img(grub_extcmd_context_t ctxt, int argc, char
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* sort image list by image name */
|
/* sort image list by image name */
|
||||||
for (cur = g_ventoy_img_list; cur; cur = cur->next)
|
while (g_ventoy_img_list)
|
||||||
{
|
{
|
||||||
for (tail = cur->next; tail; tail = tail->next)
|
min = g_ventoy_img_list;
|
||||||
|
for (cur = g_ventoy_img_list->next; cur; cur = cur->next)
|
||||||
{
|
{
|
||||||
if (ventoy_cmp_img(cur, tail) > 0)
|
if (ventoy_cmp_img(min, cur) > 0)
|
||||||
{
|
{
|
||||||
ventoy_swap_img(cur, tail);
|
min = cur;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (min->prev)
|
||||||
|
{
|
||||||
|
min->prev->next = min->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (min->next)
|
||||||
|
{
|
||||||
|
min->next->prev = min->prev;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (min == g_ventoy_img_list)
|
||||||
|
{
|
||||||
|
g_ventoy_img_list = min->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (head == NULL)
|
||||||
|
{
|
||||||
|
head = tail = min;
|
||||||
|
min->prev = NULL;
|
||||||
|
min->next = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tail->next = min;
|
||||||
|
min->prev = tail;
|
||||||
|
min->next = NULL;
|
||||||
|
tail = min;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_ventoy_img_list = head;
|
||||||
|
|
||||||
if (g_default_menu_mode == 1)
|
if (g_default_menu_mode == 1)
|
||||||
{
|
{
|
||||||
vtoy_ssprintf(g_list_script_buf, g_list_script_pos,
|
vtoy_ssprintf(g_list_script_buf, g_list_script_pos,
|
||||||
@@ -2490,11 +2525,11 @@ static grub_err_t ventoy_cmd_list_img(grub_extcmd_context_t ctxt, int argc, char
|
|||||||
for (cur = g_ventoy_img_list; cur; cur = cur->next)
|
for (cur = g_ventoy_img_list; cur; cur = cur->next)
|
||||||
{
|
{
|
||||||
vtoy_ssprintf(g_list_script_buf, g_list_script_pos,
|
vtoy_ssprintf(g_list_script_buf, g_list_script_pos,
|
||||||
"menuentry \"%s%s\" --class=\"%s\" --id=\"VID_%d\" {\n"
|
"menuentry \"%s%s\" --class=\"%s\" --id=\"VID_%p\" {\n"
|
||||||
" %s_%s \n"
|
" %s_%s \n"
|
||||||
"}\n",
|
"}\n",
|
||||||
cur->unsupport ? "[***********] " : "",
|
cur->unsupport ? "[***********] " : "",
|
||||||
cur->alias ? cur->alias : cur->name, cur->class, cur->id,
|
cur->alias ? cur->alias : cur->name, cur->class, cur,
|
||||||
cur->menu_prefix,
|
cur->menu_prefix,
|
||||||
cur->unsupport ? "unsupport_menuentry" : "common_menuentry");
|
cur->unsupport ? "unsupport_menuentry" : "common_menuentry");
|
||||||
}
|
}
|
||||||
@@ -3489,9 +3524,11 @@ end:
|
|||||||
|
|
||||||
static int ventoy_img_partition_callback (struct grub_disk *disk, const grub_partition_t partition, void *data)
|
static int ventoy_img_partition_callback (struct grub_disk *disk, const grub_partition_t partition, void *data)
|
||||||
{
|
{
|
||||||
|
int *pCnt = (int *)data;
|
||||||
|
|
||||||
(void)disk;
|
(void)disk;
|
||||||
(void)data;
|
|
||||||
|
|
||||||
|
(*pCnt)++;
|
||||||
g_part_list_pos += grub_snprintf(g_part_list_buf + g_part_list_pos, VTOY_MAX_SCRIPT_BUF - g_part_list_pos,
|
g_part_list_pos += grub_snprintf(g_part_list_buf + g_part_list_pos, VTOY_MAX_SCRIPT_BUF - g_part_list_pos,
|
||||||
"0 %llu linear /dev/ventoy %llu\n",
|
"0 %llu linear /dev/ventoy %llu\n",
|
||||||
(ulonglong)partition->len, (ulonglong)partition->start);
|
(ulonglong)partition->len, (ulonglong)partition->start);
|
||||||
@@ -3501,6 +3538,7 @@ static int ventoy_img_partition_callback (struct grub_disk *disk, const grub_par
|
|||||||
|
|
||||||
static grub_err_t ventoy_cmd_img_part_info(grub_extcmd_context_t ctxt, int argc, char **args)
|
static grub_err_t ventoy_cmd_img_part_info(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
|
int cnt = 0;
|
||||||
char *device_name = NULL;
|
char *device_name = NULL;
|
||||||
grub_device_t dev = NULL;
|
grub_device_t dev = NULL;
|
||||||
char buf[64];
|
char buf[64];
|
||||||
@@ -3529,11 +3567,14 @@ static grub_err_t ventoy_cmd_img_part_info(grub_extcmd_context_t ctxt, int argc,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_partition_iterate(dev->disk, ventoy_img_partition_callback, NULL);
|
grub_partition_iterate(dev->disk, ventoy_img_partition_callback, &cnt);
|
||||||
|
|
||||||
grub_snprintf(buf, sizeof(buf), "newc:vtoy_dm_table:mem:0x%llx:size:%d", (ulonglong)(ulong)g_part_list_buf, g_part_list_pos);
|
grub_snprintf(buf, sizeof(buf), "newc:vtoy_dm_table:mem:0x%llx:size:%d", (ulonglong)(ulong)g_part_list_buf, g_part_list_pos);
|
||||||
grub_env_set("vtoy_img_part_file", buf);
|
grub_env_set("vtoy_img_part_file", buf);
|
||||||
|
|
||||||
|
grub_snprintf(buf, sizeof(buf), "%d", cnt);
|
||||||
|
grub_env_set("vtoy_img_part_cnt", buf);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
|
||||||
check_free(device_name, grub_free);
|
check_free(device_name, grub_free);
|
||||||
@@ -4695,6 +4736,175 @@ static grub_err_t ventoy_cmd_pop_pager(grub_extcmd_context_t ctxt, int argc, cha
|
|||||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ventoy_chk_case_file(const char *filename, const struct grub_dirhook_info *info, void *data)
|
||||||
|
{
|
||||||
|
if (g_json_case_mis_path[0])
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 == info->dir && grub_strncasecmp(filename, "ventoy.json", 11) == 0)
|
||||||
|
{
|
||||||
|
grub_snprintf(g_json_case_mis_path, 32, "%s/%s", (char *)data, filename);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int ventoy_chk_case_dir(const char *filename, const struct grub_dirhook_info *info, void *data)
|
||||||
|
{
|
||||||
|
char path[16];
|
||||||
|
chk_case_fs_dir *fs_dir = (chk_case_fs_dir *)data;
|
||||||
|
|
||||||
|
if (g_json_case_mis_path[0])
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->dir && (filename[0] == 'v' || filename[0] == 'V'))
|
||||||
|
{
|
||||||
|
if (grub_strncasecmp(filename, "ventoy", 6) == 0)
|
||||||
|
{
|
||||||
|
grub_snprintf(path, sizeof(path), "/%s", filename);
|
||||||
|
fs_dir->fs->fs_dir(fs_dir->dev, path, ventoy_chk_case_file, path);
|
||||||
|
if (g_json_case_mis_path[0])
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static grub_err_t ventoy_cmd_chk_json_pathcase(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
int fstype = 0;
|
||||||
|
char *device_name = NULL;
|
||||||
|
grub_device_t dev = NULL;
|
||||||
|
grub_fs_t fs = NULL;
|
||||||
|
chk_case_fs_dir fs_dir;
|
||||||
|
|
||||||
|
(void)ctxt;
|
||||||
|
(void)argc;
|
||||||
|
(void)args;
|
||||||
|
|
||||||
|
device_name = grub_file_get_device_name(args[0]);
|
||||||
|
if (!device_name)
|
||||||
|
{
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
dev = grub_device_open(device_name);
|
||||||
|
if (!dev)
|
||||||
|
{
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
fs = grub_fs_probe(dev);
|
||||||
|
if (!fs)
|
||||||
|
{
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
fstype = ventoy_get_fs_type(fs->name);
|
||||||
|
if (fstype == ventoy_fs_fat || fstype == ventoy_fs_exfat || fstype >= ventoy_fs_max)
|
||||||
|
{
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_json_case_mis_path[0] = 0;
|
||||||
|
fs_dir.dev = dev;
|
||||||
|
fs_dir.fs = fs;
|
||||||
|
fs->fs_dir(dev, "/", ventoy_chk_case_dir, &fs_dir);
|
||||||
|
|
||||||
|
if (g_json_case_mis_path[0])
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_PLUGIN_PATH_CASE_MISMATCH", g_json_case_mis_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
|
|
||||||
|
grub_check_free(device_name);
|
||||||
|
check_free(dev, grub_device_close);
|
||||||
|
|
||||||
|
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static grub_err_t grub_cmd_gptpriority(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
grub_disk_t disk;
|
||||||
|
grub_partition_t part;
|
||||||
|
char priority_str[3]; /* Maximum value 15 */
|
||||||
|
|
||||||
|
(void)ctxt;
|
||||||
|
|
||||||
|
if (argc < 2 || argc > 3)
|
||||||
|
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
||||||
|
"gptpriority DISKNAME PARTITIONNUM [VARNAME]");
|
||||||
|
|
||||||
|
/* Open the disk if it exists */
|
||||||
|
disk = grub_disk_open (args[0]);
|
||||||
|
if (!disk)
|
||||||
|
{
|
||||||
|
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
||||||
|
"Not a disk");
|
||||||
|
}
|
||||||
|
|
||||||
|
part = grub_partition_probe (disk, args[1]);
|
||||||
|
if (!part)
|
||||||
|
{
|
||||||
|
grub_disk_close (disk);
|
||||||
|
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
||||||
|
"No such partition");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (grub_strcmp (part->partmap->name, "gpt"))
|
||||||
|
{
|
||||||
|
grub_disk_close (disk);
|
||||||
|
return grub_error (GRUB_ERR_BAD_PART_TABLE,
|
||||||
|
"Not a GPT partition");
|
||||||
|
}
|
||||||
|
|
||||||
|
grub_snprintf (priority_str, sizeof(priority_str), "%u",
|
||||||
|
(grub_uint32_t)((part->gpt_attrib >> 48) & 0xfULL));
|
||||||
|
|
||||||
|
if (argc == 3)
|
||||||
|
{
|
||||||
|
grub_env_set (args[2], priority_str);
|
||||||
|
grub_env_export (args[2]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_printf ("Priority is %s\n", priority_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
grub_disk_close (disk);
|
||||||
|
return GRUB_ERR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* <BEGIN>: Deleted by longpanda, 20210916 PN:XX LABEL:XX */
|
||||||
|
#if 0
|
||||||
|
void ventoy_tip_set_menu_label(const char *vid)
|
||||||
|
{
|
||||||
|
img_info *node;
|
||||||
|
|
||||||
|
g_ventoy_tip_msg1 = g_ventoy_tip_msg2 = NULL;
|
||||||
|
if (vid)
|
||||||
|
{
|
||||||
|
node = (img_info *)(void *)grub_strtoul(vid + 4, NULL, 16);
|
||||||
|
if (node)
|
||||||
|
{
|
||||||
|
g_ventoy_tip_msg1 = node->tip1;
|
||||||
|
g_ventoy_tip_msg2 = node->tip2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* #if 0 */
|
||||||
|
/* <END> : Deleted by longpanda, 20210916 PN:XX LABEL:XX */
|
||||||
|
|
||||||
int ventoy_env_init(void)
|
int ventoy_env_init(void)
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
@@ -4742,6 +4952,8 @@ int ventoy_env_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static cmd_para ventoy_cmds[] =
|
static cmd_para ventoy_cmds[] =
|
||||||
{
|
{
|
||||||
{ "vt_incr", ventoy_cmd_incr, 0, NULL, "{Var} {INT}", "Increase integer variable", NULL },
|
{ "vt_incr", ventoy_cmd_incr, 0, NULL, "{Var} {INT}", "Increase integer variable", NULL },
|
||||||
@@ -4872,6 +5084,9 @@ static cmd_para ventoy_cmds[] =
|
|||||||
{ "vt_search_replace_initrd", ventoy_cmd_search_replace_initrd, 0, NULL, "", "", NULL },
|
{ "vt_search_replace_initrd", ventoy_cmd_search_replace_initrd, 0, NULL, "", "", NULL },
|
||||||
{ "vt_push_pager", ventoy_cmd_push_pager, 0, NULL, "", "", NULL },
|
{ "vt_push_pager", ventoy_cmd_push_pager, 0, NULL, "", "", NULL },
|
||||||
{ "vt_pop_pager", ventoy_cmd_pop_pager, 0, NULL, "", "", NULL },
|
{ "vt_pop_pager", ventoy_cmd_pop_pager, 0, NULL, "", "", NULL },
|
||||||
|
{ "vt_check_json_path_case", ventoy_cmd_chk_json_pathcase, 0, NULL, "", "", NULL },
|
||||||
|
{ "vt_append_extra_sector", ventoy_cmd_append_ext_sector, 0, NULL, "", "", NULL },
|
||||||
|
{ "gptpriority", grub_cmd_gptpriority, 0, NULL, "", "", NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
int ventoy_register_all_cmd(void)
|
int ventoy_register_all_cmd(void)
|
||||||
|
@@ -215,6 +215,8 @@ typedef struct img_info
|
|||||||
char name[256];
|
char name[256];
|
||||||
|
|
||||||
const char *alias;
|
const char *alias;
|
||||||
|
const char *tip1;
|
||||||
|
const char *tip2;
|
||||||
const char *class;
|
const char *class;
|
||||||
const char *menu_prefix;
|
const char *menu_prefix;
|
||||||
|
|
||||||
@@ -547,6 +549,12 @@ typedef struct replace_fs_dir
|
|||||||
int filecnt;
|
int filecnt;
|
||||||
}replace_fs_dir;
|
}replace_fs_dir;
|
||||||
|
|
||||||
|
typedef struct chk_case_fs_dir
|
||||||
|
{
|
||||||
|
grub_device_t dev;
|
||||||
|
grub_fs_t fs;
|
||||||
|
}chk_case_fs_dir;
|
||||||
|
|
||||||
int ventoy_strcmp(const char *pattern, const char *str);
|
int ventoy_strcmp(const char *pattern, const char *str);
|
||||||
int ventoy_strncmp (const char *pattern, const char *str, grub_size_t n);
|
int ventoy_strncmp (const char *pattern, const char *str, grub_size_t n);
|
||||||
void ventoy_fill_os_param(grub_file_t file, ventoy_os_param *param);
|
void ventoy_fill_os_param(grub_file_t file, ventoy_os_param *param);
|
||||||
@@ -562,6 +570,7 @@ grub_err_t ventoy_cmd_linux_locate_initrd(grub_extcmd_context_t ctxt, int argc,
|
|||||||
grub_err_t ventoy_cmd_initrd_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_initrd_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
grub_err_t ventoy_cmd_valid_initrd_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_valid_initrd_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
|
grub_err_t ventoy_cmd_append_ext_sector(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
grub_err_t ventoy_cmd_skip_svd(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_skip_svd(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
grub_err_t ventoy_cmd_cpio_busybox_64(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_cpio_busybox_64(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
grub_err_t ventoy_cmd_trailer_cpio(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_trailer_cpio(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
@@ -858,6 +867,17 @@ typedef struct menu_alias
|
|||||||
struct menu_alias *next;
|
struct menu_alias *next;
|
||||||
}menu_alias;
|
}menu_alias;
|
||||||
|
|
||||||
|
typedef struct menu_tip
|
||||||
|
{
|
||||||
|
int pathlen;
|
||||||
|
char isopath[256];
|
||||||
|
char tip1[1024];
|
||||||
|
char tip2[1024];
|
||||||
|
|
||||||
|
struct menu_tip *next;
|
||||||
|
}menu_tip;
|
||||||
|
|
||||||
|
|
||||||
#define vtoy_class_image_file 0
|
#define vtoy_class_image_file 0
|
||||||
#define vtoy_class_directory 1
|
#define vtoy_class_directory 1
|
||||||
|
|
||||||
@@ -1010,6 +1030,7 @@ int ventoy_fill_windows_rtdata(void *buf, char *isopath);
|
|||||||
int ventoy_plugin_get_persistent_chunklist(const char *isopath, int index, ventoy_img_chunk_list *chunk_list);
|
int ventoy_plugin_get_persistent_chunklist(const char *isopath, int index, ventoy_img_chunk_list *chunk_list);
|
||||||
const char * ventoy_plugin_get_injection(const char *isopath);
|
const char * ventoy_plugin_get_injection(const char *isopath);
|
||||||
const char * ventoy_plugin_get_menu_alias(int type, const char *isopath);
|
const char * ventoy_plugin_get_menu_alias(int type, const char *isopath);
|
||||||
|
const menu_tip * ventoy_plugin_get_menu_tip(const char *isopath);
|
||||||
const char * ventoy_plugin_get_menu_class(int type, const char *name, const char *path);
|
const char * ventoy_plugin_get_menu_class(int type, const char *name, const char *path);
|
||||||
int ventoy_plugin_check_memdisk(const char *isopath);
|
int ventoy_plugin_check_memdisk(const char *isopath);
|
||||||
int ventoy_plugin_get_image_list_index(int type, const char *name);
|
int ventoy_plugin_get_image_list_index(int type, const char *name);
|
||||||
|
@@ -152,6 +152,23 @@ static int vtoy_json_parse_string
|
|||||||
return JSON_FAILED;
|
return JSON_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (*(pcPos - 1) == '\\')
|
||||||
|
{
|
||||||
|
for (pcPos++; *pcPos; pcPos++)
|
||||||
|
{
|
||||||
|
if (*pcPos == '"' && *(pcPos - 1) != '\\')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*pcPos == 0 || pcPos < pcTmp)
|
||||||
|
{
|
||||||
|
json_debug("Invalid quotes string %s.", pcData);
|
||||||
|
return JSON_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*ppcEnd = pcPos + 1;
|
*ppcEnd = pcPos + 1;
|
||||||
uiLen = (grub_uint32_t)(unsigned long)(pcPos - pcTmp);
|
uiLen = (grub_uint32_t)(unsigned long)(pcPos - pcTmp);
|
||||||
|
|
||||||
|
@@ -38,6 +38,9 @@
|
|||||||
|
|
||||||
GRUB_MOD_LICENSE ("GPLv3+");
|
GRUB_MOD_LICENSE ("GPLv3+");
|
||||||
|
|
||||||
|
#define VTOY_APPEND_EXT_SIZE 4096
|
||||||
|
static int g_append_ext_sector = 0;
|
||||||
|
|
||||||
char * ventoy_get_line(char *start)
|
char * ventoy_get_line(char *start)
|
||||||
{
|
{
|
||||||
if (start == NULL)
|
if (start == NULL)
|
||||||
@@ -658,6 +661,11 @@ static grub_uint32_t ventoy_linux_get_virt_chunk_count(void)
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_append_ext_sector > 0)
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -671,6 +679,11 @@ static grub_uint32_t ventoy_linux_get_virt_chunk_size(void)
|
|||||||
{
|
{
|
||||||
size += sizeof(ventoy_virt_chunk) + g_conf_replace_new_len_align;
|
size += sizeof(ventoy_virt_chunk) + g_conf_replace_new_len_align;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_append_ext_sector > 0)
|
||||||
|
{
|
||||||
|
size += sizeof(ventoy_virt_chunk) + VTOY_APPEND_EXT_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
@@ -727,6 +740,27 @@ static void ventoy_linux_fill_virt_data( grub_uint64_t isosize, ventoy_chain_
|
|||||||
cur++;
|
cur++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Lenovo EasyStartup need an addional sector for boundary check */
|
||||||
|
if (g_append_ext_sector > 0)
|
||||||
|
{
|
||||||
|
cpio_secs = VTOY_APPEND_EXT_SIZE / 2048;
|
||||||
|
|
||||||
|
cur->mem_sector_start = sector;
|
||||||
|
cur->mem_sector_end = cur->mem_sector_start + cpio_secs;
|
||||||
|
cur->mem_sector_offset = offset;
|
||||||
|
cur->remap_sector_start = 0;
|
||||||
|
cur->remap_sector_end = 0;
|
||||||
|
cur->org_sector_start = 0;
|
||||||
|
|
||||||
|
grub_memset(override + offset, 0, VTOY_APPEND_EXT_SIZE);
|
||||||
|
|
||||||
|
chain->virt_img_size_in_bytes += VTOY_APPEND_EXT_SIZE;
|
||||||
|
|
||||||
|
offset += VTOY_APPEND_EXT_SIZE;
|
||||||
|
sector += cpio_secs;
|
||||||
|
cur++;
|
||||||
|
}
|
||||||
|
|
||||||
if (g_conf_replace_offset > 0)
|
if (g_conf_replace_offset > 0)
|
||||||
{
|
{
|
||||||
cpio_secs = g_conf_replace_new_len_align / 2048;
|
cpio_secs = g_conf_replace_new_len_align / 2048;
|
||||||
@@ -1119,6 +1153,24 @@ grub_err_t ventoy_cmd_skip_svd(grub_extcmd_context_t ctxt, int argc, char **args
|
|||||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grub_err_t ventoy_cmd_append_ext_sector(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
(void)ctxt;
|
||||||
|
(void)argc;
|
||||||
|
(void)args;
|
||||||
|
|
||||||
|
if (args[0][0] == '1')
|
||||||
|
{
|
||||||
|
g_append_ext_sector = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_append_ext_sector = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **args)
|
grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -1501,20 +1553,20 @@ grub_err_t ventoy_cmd_linux_chain_data(grub_extcmd_context_t ctxt, int argc, cha
|
|||||||
|
|
||||||
isosize = file->size;
|
isosize = file->size;
|
||||||
|
|
||||||
boot_catlog = ventoy_get_iso_boot_catlog(file);
|
len = (int)grub_strlen(args[0]);
|
||||||
if (boot_catlog)
|
if (len >= 4 && 0 == grub_strcasecmp(args[0] + len - 4, ".img"))
|
||||||
{
|
{
|
||||||
if (ventoy_is_efi_os() && (!ventoy_has_efi_eltorito(file, boot_catlog)))
|
debug("boot catlog %u for img file\n", boot_catlog);
|
||||||
{
|
|
||||||
grub_env_set("LoadIsoEfiDriver", "on");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
len = (int)grub_strlen(args[0]);
|
boot_catlog = ventoy_get_iso_boot_catlog(file);
|
||||||
if (len >= 4 && 0 == grub_strcasecmp(args[0] + len - 4, ".img"))
|
if (boot_catlog)
|
||||||
{
|
{
|
||||||
debug("boot catlog %u for img file\n", boot_catlog);
|
if (ventoy_is_efi_os() && (!ventoy_has_efi_eltorito(file, boot_catlog)))
|
||||||
|
{
|
||||||
|
grub_env_set("LoadIsoEfiDriver", "on");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -48,6 +48,7 @@ static install_template *g_install_template_head = NULL;
|
|||||||
static dud *g_dud_head = NULL;
|
static dud *g_dud_head = NULL;
|
||||||
static menu_password *g_pwd_head = NULL;
|
static menu_password *g_pwd_head = NULL;
|
||||||
static persistence_config *g_persistence_head = NULL;
|
static persistence_config *g_persistence_head = NULL;
|
||||||
|
static menu_tip *g_menu_tip_head = NULL;
|
||||||
static menu_alias *g_menu_alias_head = NULL;
|
static menu_alias *g_menu_alias_head = NULL;
|
||||||
static menu_class *g_menu_class_head = NULL;
|
static menu_class *g_menu_class_head = NULL;
|
||||||
static custom_boot *g_custom_boot_head = NULL;
|
static custom_boot *g_custom_boot_head = NULL;
|
||||||
@@ -1417,6 +1418,176 @@ static int ventoy_plugin_menualias_entry(VTOY_JSON *json, const char *isodisk)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ventoy_plugin_menutip_check(VTOY_JSON *json, const char *isodisk)
|
||||||
|
{
|
||||||
|
const char *path = NULL;
|
||||||
|
const char *tip = NULL;
|
||||||
|
VTOY_JSON *pNode = NULL;
|
||||||
|
|
||||||
|
(void)isodisk;
|
||||||
|
|
||||||
|
if (json->enDataType != JSON_TYPE_OBJECT)
|
||||||
|
{
|
||||||
|
grub_printf("Not object %d\n", json->enDataType);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(json->pstChild, "left");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_printf("left: <%s>\n", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(json->pstChild, "top");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_printf("top: <%s>\n", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(json->pstChild, "color");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_printf("color: <%s>\n", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
pNode = vtoy_json_find_item(json->pstChild, JSON_TYPE_ARRAY, "tips");
|
||||||
|
for (pNode = pNode->pstChild; pNode; pNode = pNode->pstNext)
|
||||||
|
{
|
||||||
|
path = vtoy_json_get_string_ex(pNode->pstChild, "image");
|
||||||
|
if (path && path[0] == '/')
|
||||||
|
{
|
||||||
|
if (grub_strchr(path, '*'))
|
||||||
|
{
|
||||||
|
grub_printf("image: <%s> [ * ]\n", path);
|
||||||
|
}
|
||||||
|
else if (ventoy_check_file_exist("%s%s", isodisk, path))
|
||||||
|
{
|
||||||
|
grub_printf("image: <%s> [ OK ]\n", path);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_printf("image: <%s> [ NOT EXIST ]\n", path);
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(pNode->pstChild, "tip");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_printf("tip: <%s>\n", tip);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tip = vtoy_json_get_string_ex(pNode->pstChild, "tip1");
|
||||||
|
if (tip)
|
||||||
|
grub_printf("tip1: <%s>\n", tip);
|
||||||
|
else
|
||||||
|
grub_printf("tip1: <NULL>\n");
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(pNode->pstChild, "tip2");
|
||||||
|
if (tip)
|
||||||
|
grub_printf("tip2: <%s>\n", tip);
|
||||||
|
else
|
||||||
|
grub_printf("tip2: <NULL>\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_printf("image: <%s> [ INVALID ]\n", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int ventoy_plugin_menutip_entry(VTOY_JSON *json, const char *isodisk)
|
||||||
|
{
|
||||||
|
const char *path = NULL;
|
||||||
|
const char *tip = NULL;
|
||||||
|
VTOY_JSON *pNode = NULL;
|
||||||
|
menu_tip *node = NULL;
|
||||||
|
menu_tip *next = NULL;
|
||||||
|
|
||||||
|
(void)isodisk;
|
||||||
|
|
||||||
|
if (json->enDataType != JSON_TYPE_OBJECT)
|
||||||
|
{
|
||||||
|
debug("Not object %d\n", json->enDataType);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pNode = vtoy_json_find_item(json->pstChild, JSON_TYPE_ARRAY, "tips");
|
||||||
|
if (pNode == NULL)
|
||||||
|
{
|
||||||
|
debug("Not tips found\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_menu_tip_head)
|
||||||
|
{
|
||||||
|
for (node = g_menu_tip_head; node; node = next)
|
||||||
|
{
|
||||||
|
next = node->next;
|
||||||
|
grub_free(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_menu_tip_head = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(json->pstChild, "left");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_TIP_LEFT", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(json->pstChild, "top");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_TIP_TOP", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(json->pstChild, "color");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_TIP_COLOR", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (pNode = pNode->pstChild; pNode; pNode = pNode->pstNext)
|
||||||
|
{
|
||||||
|
path = vtoy_json_get_string_ex(pNode->pstChild, "image");
|
||||||
|
if (path && path[0] == '/')
|
||||||
|
{
|
||||||
|
node = grub_zalloc(sizeof(menu_tip));
|
||||||
|
if (node)
|
||||||
|
{
|
||||||
|
node->pathlen = grub_snprintf(node->isopath, sizeof(node->isopath), "%s", path);
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(pNode->pstChild, "tip");
|
||||||
|
if (tip)
|
||||||
|
{
|
||||||
|
grub_snprintf(node->tip1, 1000, "%s", tip);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tip = vtoy_json_get_string_ex(pNode->pstChild, "tip1");
|
||||||
|
if (tip)
|
||||||
|
grub_snprintf(node->tip1, 1000, "%s", tip);
|
||||||
|
|
||||||
|
tip = vtoy_json_get_string_ex(pNode->pstChild, "tip2");
|
||||||
|
if (tip)
|
||||||
|
grub_snprintf(node->tip2, 1000, "%s", tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_menu_tip_head)
|
||||||
|
{
|
||||||
|
node->next = g_menu_tip_head;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_menu_tip_head = node;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int ventoy_plugin_injection_check(VTOY_JSON *json, const char *isodisk)
|
static int ventoy_plugin_injection_check(VTOY_JSON *json, const char *isodisk)
|
||||||
{
|
{
|
||||||
@@ -2101,6 +2272,7 @@ static plugin_entry g_plugin_entries[] =
|
|||||||
{ "auto_install", ventoy_plugin_auto_install_entry, ventoy_plugin_auto_install_check },
|
{ "auto_install", ventoy_plugin_auto_install_entry, ventoy_plugin_auto_install_check },
|
||||||
{ "persistence", ventoy_plugin_persistence_entry, ventoy_plugin_persistence_check },
|
{ "persistence", ventoy_plugin_persistence_entry, ventoy_plugin_persistence_check },
|
||||||
{ "menu_alias", ventoy_plugin_menualias_entry, ventoy_plugin_menualias_check },
|
{ "menu_alias", ventoy_plugin_menualias_entry, ventoy_plugin_menualias_check },
|
||||||
|
{ "menu_tip", ventoy_plugin_menutip_entry, ventoy_plugin_menutip_check },
|
||||||
{ "menu_class", ventoy_plugin_menuclass_entry, ventoy_plugin_menuclass_check },
|
{ "menu_class", ventoy_plugin_menuclass_entry, ventoy_plugin_menuclass_check },
|
||||||
{ "injection", ventoy_plugin_injection_entry, ventoy_plugin_injection_check },
|
{ "injection", ventoy_plugin_injection_entry, ventoy_plugin_injection_check },
|
||||||
{ "auto_memdisk", ventoy_plugin_auto_memdisk_entry, ventoy_plugin_auto_memdisk_check },
|
{ "auto_memdisk", ventoy_plugin_auto_memdisk_entry, ventoy_plugin_auto_memdisk_check },
|
||||||
@@ -2149,6 +2321,11 @@ grub_err_t ventoy_cmd_load_plugin(grub_extcmd_context_t ctxt, int argc, char **a
|
|||||||
(void)ctxt;
|
(void)ctxt;
|
||||||
(void)argc;
|
(void)argc;
|
||||||
|
|
||||||
|
grub_env_set("VTOY_TIP_LEFT", "10%");
|
||||||
|
grub_env_set("VTOY_TIP_TOP", "80%+5");
|
||||||
|
grub_env_set("VTOY_TIP_COLOR", "blue");
|
||||||
|
grub_env_set("VTOY_TIP_ALIGN", "left");
|
||||||
|
|
||||||
file = ventoy_grub_file_open(GRUB_FILE_TYPE_LINUX_INITRD, "%s/ventoy/ventoy.json", args[0]);
|
file = ventoy_grub_file_open(GRUB_FILE_TYPE_LINUX_INITRD, "%s/ventoy/ventoy.json", args[0]);
|
||||||
if (!file)
|
if (!file)
|
||||||
{
|
{
|
||||||
@@ -2205,6 +2382,15 @@ grub_err_t ventoy_cmd_load_plugin(grub_extcmd_context_t ctxt, int argc, char **a
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_menu_tip_head)
|
||||||
|
{
|
||||||
|
grub_env_set("VTOY_MENU_TIP_ENABLE", "1");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_env_unset("VTOY_MENU_TIP_ENABLE");
|
||||||
|
}
|
||||||
|
|
||||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2465,6 +2651,28 @@ const char * ventoy_plugin_get_menu_alias(int type, const char *isopath)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const menu_tip * ventoy_plugin_get_menu_tip(const char *isopath)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
menu_tip *node = NULL;
|
||||||
|
|
||||||
|
if (!g_menu_tip_head)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = (int)grub_strlen(isopath);
|
||||||
|
for (node = g_menu_tip_head; node; node = node->next)
|
||||||
|
{
|
||||||
|
if (node->pathlen == len && ventoy_strcmp(node->isopath, isopath) == 0)
|
||||||
|
{
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
const char * ventoy_plugin_get_menu_class(int type, const char *name, const char *path)
|
const char * ventoy_plugin_get_menu_class(int type, const char *name, const char *path)
|
||||||
{
|
{
|
||||||
int namelen;
|
int namelen;
|
||||||
|
141
GRUB2/MOD_SRC/grub-2.04/include/grub/partition.h
Normal file
141
GRUB2/MOD_SRC/grub-2.04/include/grub/partition.h
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
/*
|
||||||
|
* GRUB -- GRand Unified Bootloader
|
||||||
|
* Copyright (C) 1999,2000,2001,2002,2004,2006,2007 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* GRUB is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GRUB is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GRUB_PART_HEADER
|
||||||
|
#define GRUB_PART_HEADER 1
|
||||||
|
|
||||||
|
#include <grub/dl.h>
|
||||||
|
#include <grub/list.h>
|
||||||
|
|
||||||
|
struct grub_disk;
|
||||||
|
|
||||||
|
typedef struct grub_partition *grub_partition_t;
|
||||||
|
|
||||||
|
#ifdef GRUB_UTIL
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
GRUB_EMBED_PCBIOS
|
||||||
|
} grub_embed_type_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef int (*grub_partition_iterate_hook_t) (struct grub_disk *disk,
|
||||||
|
const grub_partition_t partition,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
/* Partition map type. */
|
||||||
|
struct grub_partition_map
|
||||||
|
{
|
||||||
|
/* The next partition map type. */
|
||||||
|
struct grub_partition_map *next;
|
||||||
|
struct grub_partition_map **prev;
|
||||||
|
|
||||||
|
/* The name of the partition map type. */
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
/* Call HOOK with each partition, until HOOK returns non-zero. */
|
||||||
|
grub_err_t (*iterate) (struct grub_disk *disk,
|
||||||
|
grub_partition_iterate_hook_t hook, void *hook_data);
|
||||||
|
#ifdef GRUB_UTIL
|
||||||
|
/* Determine sectors available for embedding. */
|
||||||
|
grub_err_t (*embed) (struct grub_disk *disk, unsigned int *nsectors,
|
||||||
|
unsigned int max_nsectors,
|
||||||
|
grub_embed_type_t embed_type,
|
||||||
|
grub_disk_addr_t **sectors);
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
typedef struct grub_partition_map *grub_partition_map_t;
|
||||||
|
|
||||||
|
/* Partition description. */
|
||||||
|
struct grub_partition
|
||||||
|
{
|
||||||
|
/* The partition number. */
|
||||||
|
int number;
|
||||||
|
|
||||||
|
/* The start sector (relative to parent). */
|
||||||
|
grub_disk_addr_t start;
|
||||||
|
|
||||||
|
/* The length in sector units. */
|
||||||
|
grub_uint64_t len;
|
||||||
|
|
||||||
|
/* The offset of the partition table. */
|
||||||
|
grub_disk_addr_t offset;
|
||||||
|
|
||||||
|
/* The index of this partition in the partition table. */
|
||||||
|
int index;
|
||||||
|
|
||||||
|
/* Parent partition (physically contains this partition). */
|
||||||
|
struct grub_partition *parent;
|
||||||
|
|
||||||
|
/* The type partition map. */
|
||||||
|
grub_partition_map_t partmap;
|
||||||
|
|
||||||
|
/* The type of partition whne it's on MSDOS.
|
||||||
|
Used for embedding detection. */
|
||||||
|
grub_uint8_t msdostype;
|
||||||
|
|
||||||
|
/* The attrib field for GPT. Needed for priority detection. */
|
||||||
|
grub_uint64_t gpt_attrib;
|
||||||
|
};
|
||||||
|
|
||||||
|
grub_partition_t EXPORT_FUNC(grub_partition_probe) (struct grub_disk *disk,
|
||||||
|
const char *str);
|
||||||
|
int EXPORT_FUNC(grub_partition_iterate) (struct grub_disk *disk,
|
||||||
|
grub_partition_iterate_hook_t hook,
|
||||||
|
void *hook_data);
|
||||||
|
char *EXPORT_FUNC(grub_partition_get_name) (const grub_partition_t partition);
|
||||||
|
|
||||||
|
|
||||||
|
extern grub_partition_map_t EXPORT_VAR(grub_partition_map_list);
|
||||||
|
|
||||||
|
#ifndef GRUB_LST_GENERATOR
|
||||||
|
static inline void
|
||||||
|
grub_partition_map_register (grub_partition_map_t partmap)
|
||||||
|
{
|
||||||
|
grub_list_push (GRUB_AS_LIST_P (&grub_partition_map_list),
|
||||||
|
GRUB_AS_LIST (partmap));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
grub_partition_map_unregister (grub_partition_map_t partmap)
|
||||||
|
{
|
||||||
|
grub_list_remove (GRUB_AS_LIST (partmap));
|
||||||
|
}
|
||||||
|
|
||||||
|
#define FOR_PARTITION_MAPS(var) FOR_LIST_ELEMENTS((var), (grub_partition_map_list))
|
||||||
|
|
||||||
|
|
||||||
|
static inline grub_disk_addr_t
|
||||||
|
grub_partition_get_start (const grub_partition_t p)
|
||||||
|
{
|
||||||
|
grub_partition_t part;
|
||||||
|
grub_uint64_t part_start = 0;
|
||||||
|
|
||||||
|
for (part = p; part; part = part->parent)
|
||||||
|
part_start += part->start;
|
||||||
|
|
||||||
|
return part_start;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline grub_uint64_t
|
||||||
|
grub_partition_get_len (const grub_partition_t p)
|
||||||
|
{
|
||||||
|
return p->len;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* ! GRUB_PART_HEADER */
|
@@ -97,6 +97,8 @@ elif [ "$1" = "arm64" ]; then
|
|||||||
if ! echo $all_modules | grep -q " ${line%.mod} "; then
|
if ! echo $all_modules | grep -q " ${line%.mod} "; then
|
||||||
echo "Copy $line ..."
|
echo "Copy $line ..."
|
||||||
cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/arm64-efi/$line $VT_DIR/INSTALL/grub/arm64-efi/
|
cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/arm64-efi/$line $VT_DIR/INSTALL/grub/arm64-efi/
|
||||||
|
xz $VT_DIR/INSTALL/grub/arm64-efi/$line
|
||||||
|
mv $VT_DIR/INSTALL/grub/arm64-efi/${line}.xz $VT_DIR/INSTALL/grub/arm64-efi/${line}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
elif [ "$1" = "mips64el" ]; then
|
elif [ "$1" = "mips64el" ]; then
|
||||||
|
@@ -27,6 +27,33 @@ vtlog "####### $0 $* ########"
|
|||||||
|
|
||||||
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
|
ventoy_os_install_dmsetup_by_fuse() {
|
||||||
|
vtlog "ventoy_os_install_dmsetup_by_fuse $*"
|
||||||
|
|
||||||
|
mkdir -p $VTOY_PATH/mnt/fuse $VTOY_PATH/mnt/iso $VTOY_PATH/mnt/squashfs
|
||||||
|
|
||||||
|
vtoydm -p -f $VTOY_PATH/ventoy_image_map -d $1 > $VTOY_PATH/ventoy_dm_table
|
||||||
|
vtoy_fuse_iso -f $VTOY_PATH/ventoy_dm_table -m $VTOY_PATH/mnt/fuse
|
||||||
|
|
||||||
|
mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso
|
||||||
|
|
||||||
|
sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs)
|
||||||
|
|
||||||
|
mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs
|
||||||
|
|
||||||
|
kVer=$(uname -r)
|
||||||
|
KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*)
|
||||||
|
vtlog "insmod $KoName"
|
||||||
|
insmod $KoName
|
||||||
|
|
||||||
|
umount $VTOY_PATH/mnt/squashfs
|
||||||
|
umount $VTOY_PATH/mnt/iso
|
||||||
|
umount $VTOY_PATH/mnt/fuse
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wait_for_usb_disk_ready
|
wait_for_usb_disk_ready
|
||||||
|
|
||||||
vtdiskname=$(get_ventoy_disk_name)
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
@@ -36,6 +63,12 @@ if [ "$vtdiskname" = "unknown" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if grep -q 'device-mapper' /proc/devices; then
|
||||||
|
vtlog "device-mapper module exist"
|
||||||
|
else
|
||||||
|
ventoy_os_install_dmsetup_by_fuse $vtdiskname
|
||||||
|
fi
|
||||||
|
|
||||||
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||||
|
|
||||||
if ! [ -e $VTOY_DM_PATH ]; then
|
if ! [ -e $VTOY_DM_PATH ]; then
|
||||||
|
@@ -18,8 +18,15 @@
|
|||||||
#************************************************************************************
|
#************************************************************************************
|
||||||
|
|
||||||
$SED '1 apmedia=usbhd' -i /init
|
$SED '1 apmedia=usbhd' -i /init
|
||||||
$SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
|
|
||||||
$SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init
|
if $GREP -q 'HAVE_PARTS=' /init; then
|
||||||
|
$SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
|
||||||
|
$SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init
|
||||||
|
elif $GREP -q 'LESSPARTS=' /init; then
|
||||||
|
$SED "/^ *LESSPARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
|
||||||
|
$SED "/^ *LESSPARTS=/a\ LESSPARTS='ventoy|iso9660'" -i /init
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ -f /DISTRO_SPECS ]; then
|
if [ -f /DISTRO_SPECS ]; then
|
||||||
if ! [ -d /dev ]; then
|
if ! [ -d /dev ]; then
|
||||||
|
@@ -35,7 +35,7 @@ ventoy_get_debian_distro() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e /init ]; then
|
if [ -e /init ]; then
|
||||||
if $GREP -q PUPPYSFS /init; then
|
if $EGREP -q 'PUPPYSFS|PUPPYFILE' /init; then
|
||||||
if $GREP -q VEKETSFS /init; then
|
if $GREP -q VEKETSFS /init; then
|
||||||
echo 'veket'; return
|
echo 'veket'; return
|
||||||
else
|
else
|
||||||
|
83
IMG/cpio/ventoy/hook/easystartup/disk_hook.sh
Normal file
83
IMG/cpio/ventoy/hook/easystartup/disk_hook.sh
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
|
get_rhel_ver() {
|
||||||
|
if uname -m | grep -q '64'; then
|
||||||
|
machine='_X64'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q '6[.]1' /etc/redhat-release; then
|
||||||
|
echo "RHAS6U1$machine"; return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "RHAS6U1$machine"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_dm_mod_ko() {
|
||||||
|
# dump iso file location
|
||||||
|
vtoydm -i -f $VTOY_PATH/ventoy_image_map -d ${vtdiskname} > $VTOY_PATH/iso_file_list
|
||||||
|
|
||||||
|
sysver=$(get_rhel_ver)
|
||||||
|
vtlog "sysver=$sysver"
|
||||||
|
|
||||||
|
LINE=$(grep "$sysver" -n -m1 $VTOY_PATH/iso_file_list | awk -F: '{print $1}')
|
||||||
|
vtlog "LINE=$LINE"
|
||||||
|
|
||||||
|
LINE=$(sed -n "$LINE,\$p" $VTOY_PATH/iso_file_list | grep -m1 'initrd.img')
|
||||||
|
vtlog "LINE=$LINE"
|
||||||
|
|
||||||
|
sector=$(echo $LINE | $AWK '{print $(NF-1)}')
|
||||||
|
length=$(echo $LINE | $AWK '{print $NF}')
|
||||||
|
vtlog "sector=$sector length=$length"
|
||||||
|
|
||||||
|
mkdir xxx
|
||||||
|
vtoydm -e -f $VTOY_PATH/ventoy_image_map -d ${vtdiskname} -s $sector -l $length -o ./xxx.img
|
||||||
|
|
||||||
|
cd xxx/
|
||||||
|
zcat ../xxx.img | cpio -idmu
|
||||||
|
ko=$(find -name dm-mod.ko*)
|
||||||
|
vtlog "ko=$ko ..."
|
||||||
|
insmod $ko
|
||||||
|
|
||||||
|
cd ../
|
||||||
|
rm -f xxx.img
|
||||||
|
rm -rf xxx
|
||||||
|
}
|
||||||
|
|
||||||
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
|
vtlog "vtdiskname=$vtdiskname ..."
|
||||||
|
if [ "$vtdiskname" = "unknown" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q 'device-mapper' /proc/devices; then
|
||||||
|
vtlog "device-mapper module check ko"
|
||||||
|
else
|
||||||
|
install_dm_mod_ko
|
||||||
|
fi
|
||||||
|
|
||||||
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||||
|
|
||||||
|
ln -s /dev/dm-0 /dev/root
|
||||||
|
|
||||||
|
PATH=$VTPATH_OLD
|
23
IMG/cpio/ventoy/hook/easystartup/ventoy-hook.sh
Normal file
23
IMG/cpio/ventoy/hook/easystartup/ventoy-hook.sh
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. $VTOY_PATH/hook/ventoy-os-lib.sh
|
||||||
|
|
||||||
|
$SED "s#^CDROM=.*#CDROM=/dev/dm-0#" -i /init
|
||||||
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/easystartup/ventoy-initqueue.sh /initqueue/ventoy.sh
|
20
IMG/cpio/ventoy/hook/easystartup/ventoy-initqueue.sh
Normal file
20
IMG/cpio/ventoy/hook/easystartup/ventoy-initqueue.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
/ventoy/busybox/sh /ventoy/hook/easystartup/disk_hook.sh $*
|
@@ -562,6 +562,31 @@ ventoy_create_dev_ventoy_part() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ventoy_create_chromeos_ventoy_part() {
|
||||||
|
blkdev_num=$($VTOY_PATH/tool/dmsetup ls | $GREP ventoy | $SED 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
|
||||||
|
$BUSYBOX_PATH/mknod -m 0666 /dev/ventoy b $blkdev_num
|
||||||
|
|
||||||
|
if [ -e /vtoy_dm_table ]; then
|
||||||
|
vtPartid=1
|
||||||
|
|
||||||
|
$CAT /vtoy_dm_table | while read vtline; do
|
||||||
|
echo $vtline > /ventoy/dm_table_part${vtPartid}
|
||||||
|
|
||||||
|
if [ $vtPartid -eq $1 ]; then
|
||||||
|
$VTOY_PATH/tool/dmsetup create ventoy${vtPartid} /ventoy/dm_table_part${vtPartid} --readonly
|
||||||
|
else
|
||||||
|
$VTOY_PATH/tool/dmsetup create ventoy${vtPartid} /ventoy/dm_table_part${vtPartid}
|
||||||
|
fi
|
||||||
|
|
||||||
|
blkdev_num=$($VTOY_PATH/tool/dmsetup ls | $GREP ventoy${vtPartid} | $SED 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
|
||||||
|
$BUSYBOX_PATH/mknod -m 0666 /dev/ventoy${vtPartid} b $blkdev_num
|
||||||
|
|
||||||
|
vtPartid=$(expr $vtPartid + 1)
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
is_inotify_ventoy_part() {
|
is_inotify_ventoy_part() {
|
||||||
if echo $1 | $GREP -q "2$"; then
|
if echo $1 | $GREP -q "2$"; then
|
||||||
if ! [ -e /sys/block/$1 ]; then
|
if ! [ -e /sys/block/$1 ]; then
|
||||||
|
@@ -185,7 +185,7 @@ ventoy_unpack_injection() {
|
|||||||
|
|
||||||
if [ -e $VTOY_PATH/ventoy_injection ]; then
|
if [ -e $VTOY_PATH/ventoy_injection ]; then
|
||||||
echo "### decompress injection ... ###" >>$VTLOG
|
echo "### decompress injection ... ###" >>$VTLOG
|
||||||
ventoy_unpack_injection > $VTOY_PATH/injection.log 2>&1
|
ventoy_unpack_injection > $VTOY_PATH/injection.log 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
201
IMG/cpio/ventoy/loop/cloudready/ventoy-hook.sh
Normal file
201
IMG/cpio/ventoy/loop/cloudready/ventoy-hook.sh
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
vtlog "####### $0 $* ########"
|
||||||
|
|
||||||
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
|
mkdir /sys
|
||||||
|
mount -t sysfs sys /sys
|
||||||
|
mdev -s
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
while [ -n "Y" ]; do
|
||||||
|
usb_disk=$(get_ventoy_disk_name)
|
||||||
|
|
||||||
|
if echo $usb_disk | egrep -q "nvme|mmc|nbd"; then
|
||||||
|
vtpart2=${usb_disk}p2
|
||||||
|
else
|
||||||
|
vtpart2=${usb_disk}2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "${vtpart2}" ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
sleep 2
|
||||||
|
mdev -s
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
|
if [ "$vtdiskname" = "unknown" ]; then
|
||||||
|
vtlog "ventoy disk not found"
|
||||||
|
PATH=$VTPATH_OLD
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||||
|
|
||||||
|
blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/')
|
||||||
|
vtDM=$(ventoy_find_dm_id ${blkdev_num})
|
||||||
|
echo -n $vtDM > /ventoy/vtDM
|
||||||
|
|
||||||
|
ventoy_create_chromeos_ventoy_part 3
|
||||||
|
mdev -s
|
||||||
|
|
||||||
|
vtlog "copy out the e2fsck program ..."
|
||||||
|
|
||||||
|
copy_lib() {
|
||||||
|
cp -a /ventoy_rdroot/usr/lib64/$1 /usr/lib64/
|
||||||
|
cp -a /ventoy_rdroot/lib64/$1 /lib64/
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir /ventoy_rdroot
|
||||||
|
mkdir -p /lib /lib64 /usr/lib64 /sbin
|
||||||
|
|
||||||
|
mount -o ro /dev/ventoy3 /ventoy_rdroot >>$VTLOG 2>&1
|
||||||
|
cp -a /ventoy_rdroot/sbin/e2fsck /sbin/
|
||||||
|
cp -a /ventoy_rdroot/sbin/dmsetup /sbin/
|
||||||
|
|
||||||
|
copy_lib libext2fs*
|
||||||
|
copy_lib libcom_err*
|
||||||
|
copy_lib libe2p*
|
||||||
|
copy_lib libblk*
|
||||||
|
copy_lib libuuid*
|
||||||
|
copy_lib libdl.*
|
||||||
|
copy_lib libdl-*
|
||||||
|
copy_lib libc.*
|
||||||
|
copy_lib libc-*
|
||||||
|
copy_lib libpthread*
|
||||||
|
copy_lib ld-*
|
||||||
|
copy_lib libdevmapper*
|
||||||
|
copy_lib libudev*
|
||||||
|
copy_lib libm.*
|
||||||
|
copy_lib libm-*
|
||||||
|
copy_lib librt*
|
||||||
|
copy_lib libpopt*
|
||||||
|
copy_lib libgpg-error*
|
||||||
|
copy_lib libselinux*
|
||||||
|
copy_lib libsepol*
|
||||||
|
copy_lib libpcre*
|
||||||
|
copy_lib libcap*
|
||||||
|
copy_lib libdw*
|
||||||
|
copy_lib libgcc_s*
|
||||||
|
copy_lib libattr*
|
||||||
|
copy_lib libelf*
|
||||||
|
copy_lib libz.*
|
||||||
|
copy_lib libbz2*
|
||||||
|
copy_lib libgcrypt*
|
||||||
|
copy_lib liblvm*
|
||||||
|
|
||||||
|
ln -s /lib64/libdevmapper.so.1.02 /lib64/libdevmapper.so.1.02.1
|
||||||
|
|
||||||
|
umount /ventoy_rdroot
|
||||||
|
|
||||||
|
vtlog "========================================="
|
||||||
|
vtlog "===== e2fsck -y -v /dev/ventoy1 ====="
|
||||||
|
e2fsck -y -v /dev/ventoy1 >>$VTLOG 2>&1
|
||||||
|
#vtlog "===== e2fsck -y -v /dev/ventoy3 ====="
|
||||||
|
#e2fsck -y -v /dev/ventoy3 >>$VTLOG 2>&1
|
||||||
|
vtlog "===== e2fsck -y -v /dev/ventoy8 ====="
|
||||||
|
e2fsck -y -v /dev/ventoy8 >>$VTLOG 2>&1
|
||||||
|
vtlog "========================================="
|
||||||
|
|
||||||
|
/sbin/dmsetup --version >>$VTLOG 2>&1
|
||||||
|
veritysetup --version >>$VTLOG 2>&1
|
||||||
|
|
||||||
|
vtlog "proc devtmpfs ..."
|
||||||
|
mkdir /newdev
|
||||||
|
mount -t devtmpfs dev /newdev
|
||||||
|
|
||||||
|
cp -a /dev/mapper/ventoy* /newdev/mapper/
|
||||||
|
cp -a /dev/ventoy* /newdev/
|
||||||
|
|
||||||
|
|
||||||
|
vtshortname="${vtdiskname#/dev/}"
|
||||||
|
mv /newdev/${vtshortname} /newdev/backup_${vtshortname}
|
||||||
|
cp -a /dev/ventoy /newdev/${vtshortname}
|
||||||
|
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
if [ -e /dev/ventoy${i} ]; then
|
||||||
|
if echo $vtdiskname | egrep -q "nvme|mmc|nbd"; then
|
||||||
|
vtpart=p$i
|
||||||
|
else
|
||||||
|
vtpart=$i
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e /newdev/${vtshortname}${vtpart} ]; then
|
||||||
|
mv /newdev/${vtshortname}${vtpart} /newdev/backup_${vtshortname}${vtpart}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -a /dev/ventoy${i} /newdev/${vtshortname}${vtpart}
|
||||||
|
|
||||||
|
if [ $i -eq 3 ]; then
|
||||||
|
[ -e /dev/${vtshortname}${vtpart} ] && rm -f /dev/${vtshortname}${vtpart}
|
||||||
|
cp -a /dev/ventoy${i} /dev/${vtshortname}${vtpart}
|
||||||
|
vt_root_dev="/dev/${vtshortname}${vtpart}"
|
||||||
|
vtlog "vt_root_dev=$vt_root_dev"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# if grep -q 'DM=' /proc/cmdline; then
|
||||||
|
# vtlog "Boot verified image ..."
|
||||||
|
|
||||||
|
# dmP1=$(sed "s/.*\(0 [0-9]* verity\).*/\1/" /proc/cmdline)
|
||||||
|
# alg=$(sed "s/.*alg=\([^ ]*\).*/\1/" /proc/cmdline)
|
||||||
|
# hexdigest=$(sed "s/.*root_hexdigest=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
|
||||||
|
# salt=$(sed "s/.*salt=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
|
||||||
|
# hashstart=$(sed "s/.*hashstart=\([0-9][0-9]*\).*/\1/" /proc/cmdline)
|
||||||
|
|
||||||
|
#512 to 4096
|
||||||
|
# blocknum=$(expr $hashstart / 8)
|
||||||
|
# hashoffset=$(expr $hashstart \* 512)
|
||||||
|
|
||||||
|
# vtlog "veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0"
|
||||||
|
# veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0
|
||||||
|
# sleep 1
|
||||||
|
# mdev -s
|
||||||
|
|
||||||
|
# blkdev_num=$(dmsetup ls | grep vroot | sed 's/.*(\([0-9][0-9]*\),[^0-9]*\([0-9][0-9]*\).*/\1:\2/')
|
||||||
|
# vtDM=$(ventoy_find_dm_id ${blkdev_num})
|
||||||
|
# vtlog "blkdev_num=$blkdev_num vtDM=$vtDM"
|
||||||
|
|
||||||
|
# if [ -b /dev/$vtDM ]; then
|
||||||
|
# veritysetup status vroot >> $VTLOG 2>&1
|
||||||
|
# mount -o ro /dev/$vtDM /ventoy_rdroot
|
||||||
|
# else
|
||||||
|
# mount -o ro $vt_root_dev /ventoy_rdroot
|
||||||
|
# fi
|
||||||
|
# else
|
||||||
|
# vtlog "Boot normal image ..."
|
||||||
|
# mount -o ro $vt_root_dev /ventoy_rdroot
|
||||||
|
# fi
|
||||||
|
|
||||||
|
vtlog "Boot normal image ..."
|
||||||
|
mount -o ro $vt_root_dev /ventoy_rdroot
|
||||||
|
|
||||||
|
cp -a $VTLOG /newdev/ventoy.log
|
||||||
|
umount /newdev
|
||||||
|
mount -t devtmpfs dev /ventoy_rdroot/dev
|
||||||
|
|
||||||
|
PATH=$VTPATH_OLD
|
201
IMG/cpio/ventoy/loop/fydeos/ventoy-hook.sh
Normal file
201
IMG/cpio/ventoy/loop/fydeos/ventoy-hook.sh
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
vtlog "####### $0 $* ########"
|
||||||
|
|
||||||
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
|
mkdir /sys
|
||||||
|
mount -t sysfs sys /sys
|
||||||
|
mdev -s
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
while [ -n "Y" ]; do
|
||||||
|
usb_disk=$(get_ventoy_disk_name)
|
||||||
|
|
||||||
|
if echo $usb_disk | egrep -q "nvme|mmc|nbd"; then
|
||||||
|
vtpart2=${usb_disk}p2
|
||||||
|
else
|
||||||
|
vtpart2=${usb_disk}2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "${vtpart2}" ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
sleep 2
|
||||||
|
mdev -s
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
|
if [ "$vtdiskname" = "unknown" ]; then
|
||||||
|
vtlog "ventoy disk not found"
|
||||||
|
PATH=$VTPATH_OLD
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||||
|
|
||||||
|
blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/')
|
||||||
|
vtDM=$(ventoy_find_dm_id ${blkdev_num})
|
||||||
|
echo -n $vtDM > /ventoy/vtDM
|
||||||
|
|
||||||
|
ventoy_create_chromeos_ventoy_part 3
|
||||||
|
mdev -s
|
||||||
|
|
||||||
|
vtlog "copy out the e2fsck program ..."
|
||||||
|
|
||||||
|
copy_lib() {
|
||||||
|
cp -a /ventoy_rdroot/usr/lib64/$1 /usr/lib64/
|
||||||
|
cp -a /ventoy_rdroot/lib64/$1 /lib64/
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir /ventoy_rdroot
|
||||||
|
mkdir -p /lib /lib64 /usr/lib64 /sbin
|
||||||
|
|
||||||
|
mount -o ro /dev/ventoy3 /ventoy_rdroot >>$VTLOG 2>&1
|
||||||
|
cp -a /ventoy_rdroot/sbin/e2fsck /sbin/
|
||||||
|
cp -a /ventoy_rdroot/sbin/dmsetup /sbin/
|
||||||
|
|
||||||
|
copy_lib libext2fs*
|
||||||
|
copy_lib libcom_err*
|
||||||
|
copy_lib libe2p*
|
||||||
|
copy_lib libblk*
|
||||||
|
copy_lib libuuid*
|
||||||
|
copy_lib libdl.*
|
||||||
|
copy_lib libdl-*
|
||||||
|
copy_lib libc.*
|
||||||
|
copy_lib libc-*
|
||||||
|
copy_lib libpthread*
|
||||||
|
copy_lib ld-*
|
||||||
|
copy_lib libdevmapper*
|
||||||
|
copy_lib libudev*
|
||||||
|
copy_lib libm.*
|
||||||
|
copy_lib libm-*
|
||||||
|
copy_lib librt*
|
||||||
|
copy_lib libpopt*
|
||||||
|
copy_lib libgpg-error*
|
||||||
|
copy_lib libselinux*
|
||||||
|
copy_lib libsepol*
|
||||||
|
copy_lib libpcre*
|
||||||
|
copy_lib libcap*
|
||||||
|
copy_lib libdw*
|
||||||
|
copy_lib libgcc_s*
|
||||||
|
copy_lib libattr*
|
||||||
|
copy_lib libelf*
|
||||||
|
copy_lib libz.*
|
||||||
|
copy_lib libbz2*
|
||||||
|
copy_lib libgcrypt*
|
||||||
|
copy_lib liblvm*
|
||||||
|
|
||||||
|
ln -s /lib64/libdevmapper.so.1.02 /lib64/libdevmapper.so.1.02.1
|
||||||
|
|
||||||
|
umount /ventoy_rdroot
|
||||||
|
|
||||||
|
vtlog "========================================="
|
||||||
|
vtlog "===== e2fsck -y -v /dev/ventoy1 ====="
|
||||||
|
e2fsck -y -v /dev/ventoy1 >>$VTLOG 2>&1
|
||||||
|
#vtlog "===== e2fsck -y -v /dev/ventoy3 ====="
|
||||||
|
#e2fsck -y -v /dev/ventoy3 >>$VTLOG 2>&1
|
||||||
|
vtlog "===== e2fsck -y -v /dev/ventoy8 ====="
|
||||||
|
e2fsck -y -v /dev/ventoy8 >>$VTLOG 2>&1
|
||||||
|
vtlog "========================================="
|
||||||
|
|
||||||
|
/sbin/dmsetup --version >>$VTLOG 2>&1
|
||||||
|
veritysetup --version >>$VTLOG 2>&1
|
||||||
|
|
||||||
|
vtlog "proc devtmpfs ..."
|
||||||
|
mkdir /newdev
|
||||||
|
mount -t devtmpfs dev /newdev
|
||||||
|
|
||||||
|
cp -a /dev/mapper/ventoy* /newdev/mapper/
|
||||||
|
cp -a /dev/ventoy* /newdev/
|
||||||
|
|
||||||
|
|
||||||
|
vtshortname="${vtdiskname#/dev/}"
|
||||||
|
mv /newdev/${vtshortname} /newdev/backup_${vtshortname}
|
||||||
|
cp -a /dev/ventoy /newdev/${vtshortname}
|
||||||
|
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
if [ -e /dev/ventoy${i} ]; then
|
||||||
|
if echo $vtdiskname | egrep -q "nvme|mmc|nbd"; then
|
||||||
|
vtpart=p$i
|
||||||
|
else
|
||||||
|
vtpart=$i
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e /newdev/${vtshortname}${vtpart} ]; then
|
||||||
|
mv /newdev/${vtshortname}${vtpart} /newdev/backup_${vtshortname}${vtpart}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -a /dev/ventoy${i} /newdev/${vtshortname}${vtpart}
|
||||||
|
|
||||||
|
if [ $i -eq 3 ]; then
|
||||||
|
[ -e /dev/${vtshortname}${vtpart} ] && rm -f /dev/${vtshortname}${vtpart}
|
||||||
|
cp -a /dev/ventoy${i} /dev/${vtshortname}${vtpart}
|
||||||
|
vt_root_dev="/dev/${vtshortname}${vtpart}"
|
||||||
|
vtlog "vt_root_dev=$vt_root_dev"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# if grep -q 'DM=' /proc/cmdline; then
|
||||||
|
# vtlog "Boot verified image ..."
|
||||||
|
|
||||||
|
# dmP1=$(sed "s/.*\(0 [0-9]* verity\).*/\1/" /proc/cmdline)
|
||||||
|
# alg=$(sed "s/.*alg=\([^ ]*\).*/\1/" /proc/cmdline)
|
||||||
|
# hexdigest=$(sed "s/.*root_hexdigest=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
|
||||||
|
# salt=$(sed "s/.*salt=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
|
||||||
|
# hashstart=$(sed "s/.*hashstart=\([0-9][0-9]*\).*/\1/" /proc/cmdline)
|
||||||
|
|
||||||
|
#512 to 4096
|
||||||
|
# blocknum=$(expr $hashstart / 8)
|
||||||
|
# hashoffset=$(expr $hashstart \* 512)
|
||||||
|
|
||||||
|
# vtlog "veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0"
|
||||||
|
# veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0
|
||||||
|
# sleep 1
|
||||||
|
# mdev -s
|
||||||
|
|
||||||
|
# blkdev_num=$(dmsetup ls | grep vroot | sed 's/.*(\([0-9][0-9]*\),[^0-9]*\([0-9][0-9]*\).*/\1:\2/')
|
||||||
|
# vtDM=$(ventoy_find_dm_id ${blkdev_num})
|
||||||
|
# vtlog "blkdev_num=$blkdev_num vtDM=$vtDM"
|
||||||
|
|
||||||
|
# if [ -b /dev/$vtDM ]; then
|
||||||
|
# veritysetup status vroot >> $VTLOG 2>&1
|
||||||
|
# mount -o ro /dev/$vtDM /ventoy_rdroot
|
||||||
|
# else
|
||||||
|
# mount -o ro $vt_root_dev /ventoy_rdroot
|
||||||
|
# fi
|
||||||
|
# else
|
||||||
|
# vtlog "Boot normal image ..."
|
||||||
|
# mount -o ro $vt_root_dev /ventoy_rdroot
|
||||||
|
# fi
|
||||||
|
|
||||||
|
vtlog "Boot normal image ..."
|
||||||
|
mount -o ro $vt_root_dev /ventoy_rdroot
|
||||||
|
|
||||||
|
cp -a $VTLOG /newdev/ventoy.log
|
||||||
|
umount /newdev
|
||||||
|
mount -t devtmpfs dev /ventoy_rdroot/dev
|
||||||
|
|
||||||
|
PATH=$VTPATH_OLD
|
@@ -58,6 +58,12 @@ ventoy_get_os_type() {
|
|||||||
|
|
||||||
# rhel6/CentOS6 and all other distributions based on them
|
# rhel6/CentOS6 and all other distributions based on them
|
||||||
elif $GREP -q 'el6' /proc/version; then
|
elif $GREP -q 'el6' /proc/version; then
|
||||||
|
if [ -f /sbin/detectcd ]; then
|
||||||
|
if $GREP -q -i 'LENOVO-EasyStartup' /sbin/detectcd; then
|
||||||
|
echo 'easystartup'; return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo 'rhel6'; return
|
echo 'rhel6'; return
|
||||||
|
|
||||||
# rhel7/CentOS7/rhel8/CentOS8 and all other distributions based on them
|
# rhel7/CentOS7/rhel8/CentOS8 and all other distributions based on them
|
||||||
@@ -82,8 +88,8 @@ ventoy_get_os_type() {
|
|||||||
|
|
||||||
# Deepin : do the same process with debian
|
# Deepin : do the same process with debian
|
||||||
elif $GREP -q '[Dd]eepin' /proc/version; then
|
elif $GREP -q '[Dd]eepin' /proc/version; then
|
||||||
echo 'debian'; return
|
echo 'debian'; return
|
||||||
|
|
||||||
# SUSE
|
# SUSE
|
||||||
elif $GREP -q 'SUSE' /proc/version; then
|
elif $GREP -q 'SUSE' /proc/version; then
|
||||||
echo 'suse'; return
|
echo 'suse'; return
|
||||||
@@ -154,7 +160,11 @@ ventoy_get_os_type() {
|
|||||||
elif $GREP -q 'openEuler' /etc/os-release; then
|
elif $GREP -q 'openEuler' /etc/os-release; then
|
||||||
echo 'openEuler'; return
|
echo 'openEuler'; return
|
||||||
elif $GREP -q 'fuyu' /etc/os-release; then
|
elif $GREP -q 'fuyu' /etc/os-release; then
|
||||||
echo 'openEuler'; return
|
echo 'openEuler'; return
|
||||||
|
elif $GREP -q 'deepin' /etc/os-release; then
|
||||||
|
echo 'debian'; return
|
||||||
|
elif $GREP -q 'chinauos' /etc/os-release; then
|
||||||
|
echo 'debian'; return
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -340,7 +350,17 @@ fi
|
|||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
# #
|
# #
|
||||||
# Step 3 : Check for debug break #
|
# Step 3 : Run LiveInjection Hook #
|
||||||
|
# #
|
||||||
|
####################################################################
|
||||||
|
if [ -f "/live_injection_7ed136ec_7a61_4b54_adc3_ae494d5106ea/hook.sh" ]; then
|
||||||
|
$BUSYBOX_PATH/sh "/live_injection_7ed136ec_7a61_4b54_adc3_ae494d5106ea/hook.sh" $VTOS
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
# #
|
||||||
|
# Step 4 : Check for debug break #
|
||||||
# #
|
# #
|
||||||
####################################################################
|
####################################################################
|
||||||
if [ "$VTOY_BREAK_LEVEL" = "03" ] || [ "$VTOY_BREAK_LEVEL" = "13" ]; then
|
if [ "$VTOY_BREAK_LEVEL" = "03" ] || [ "$VTOY_BREAK_LEVEL" = "13" ]; then
|
||||||
@@ -357,7 +377,7 @@ fi
|
|||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
# #
|
# #
|
||||||
# Step 4 : Hand over to real init #
|
# Step 5 : Hand over to real init #
|
||||||
# #
|
# #
|
||||||
####################################################################
|
####################################################################
|
||||||
$BUSYBOX_PATH/umount /proc
|
$BUSYBOX_PATH/umount /proc
|
||||||
|
@@ -127,8 +127,8 @@ ventoy_get_os_type() {
|
|||||||
|
|
||||||
# Deepin : do the same process with debian
|
# Deepin : do the same process with debian
|
||||||
elif $GREP -q '[Dd]eepin' /proc/version; then
|
elif $GREP -q '[Dd]eepin' /proc/version; then
|
||||||
echo 'debian'; return
|
echo 'debian'; return
|
||||||
|
|
||||||
# SUSE
|
# SUSE
|
||||||
elif $GREP -q 'SUSE' /proc/version; then
|
elif $GREP -q 'SUSE' /proc/version; then
|
||||||
echo 'suse'; return
|
echo 'suse'; return
|
||||||
@@ -200,6 +200,10 @@ ventoy_get_os_type() {
|
|||||||
echo 'openEuler'; return
|
echo 'openEuler'; return
|
||||||
elif $GREP -q 'fuyu' /etc/os-release; then
|
elif $GREP -q 'fuyu' /etc/os-release; then
|
||||||
echo 'openEuler'; return
|
echo 'openEuler'; return
|
||||||
|
elif $GREP -q 'deepin' /etc/os-release; then
|
||||||
|
echo 'debian'; return
|
||||||
|
elif $GREP -q 'chinauos' /etc/os-release; then
|
||||||
|
echo 'debian'; return
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -81,6 +81,18 @@ else
|
|||||||
echo "use unsquashfs_32" >>$VTLOG
|
echo "use unsquashfs_32" >>$VTLOG
|
||||||
$BUSYBOX_PATH/cp -a $VTOY_PATH/tool/unsquashfs_32 $VTOY_PATH/tool/vtoy_unsquashfs
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/tool/unsquashfs_32 $VTOY_PATH/tool/vtoy_unsquashfs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if $GREP -q 64 $VTOY_PATH/ventoy_arch; then
|
||||||
|
echo "use veritysetup64" >>$VTLOG
|
||||||
|
if [ -f $VTOY_PATH/tool/veritysetup64 ]; then
|
||||||
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/tool/veritysetup64 $VTOY_PATH/tool/veritysetup
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "use veritysetup32" >>$VTLOG
|
||||||
|
|
||||||
|
if [ -f $VTOY_PATH/tool/veritysetup32 ]; then
|
||||||
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/tool/veritysetup32 $VTOY_PATH/tool/veritysetup
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -27,6 +27,13 @@ if [ ! -f "$file" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if echo $size | grep -q "^-"; then
|
||||||
|
mode="Shrink"
|
||||||
|
size=${size:1}
|
||||||
|
else
|
||||||
|
mode="Extend"
|
||||||
|
fi
|
||||||
|
|
||||||
if echo $size | grep -q "[^0-9]"; then
|
if echo $size | grep -q "[^0-9]"; then
|
||||||
print_usage
|
print_usage
|
||||||
exit 1
|
exit 1
|
||||||
@@ -42,10 +49,25 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
fsMB=$(expr $fsize / 1024 / 1024)
|
fsMB=$(expr $fsize / 1024 / 1024)
|
||||||
total=$(expr $fsMB + $size)
|
|
||||||
|
if [ "$mode" = "Extend" ]; then
|
||||||
|
total=$(expr $fsMB + $size)
|
||||||
|
else
|
||||||
|
if [ $fsMB -le $size ]; then
|
||||||
|
echo "File size of $file is less than ${size}MB."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
total=$(expr $fsMB - $size)
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
magic=$(hexdump -n3 -e '3/1 "%02X"' $file)
|
magic=$(hexdump -n3 -e '3/1 "%02X"' $file)
|
||||||
if [ "$magic" = "584653" ]; then
|
if [ "$magic" = "584653" ]; then
|
||||||
|
if [ "$mode" = "Shrink" ]; then
|
||||||
|
echo "Shrink is not supported for XFS filesystem."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if which xfs_growfs >/dev/null 2>&1; then
|
if which xfs_growfs >/dev/null 2>&1; then
|
||||||
cmd=xfs_growfs
|
cmd=xfs_growfs
|
||||||
else
|
else
|
||||||
@@ -61,23 +83,26 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$mode" = "Extend" ]; then
|
||||||
|
echo "$mode dat file... (current is ${fsMB}MB, append ${size}MB, total ${total}MB)"
|
||||||
|
dd if=/dev/zero bs=1M count=$size status=none >> "$file"
|
||||||
|
sync
|
||||||
|
else
|
||||||
|
echo "$mode dat file... (current is ${fsMB}MB, reduce ${size}MB, finally ${total}MB)"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Extend dat file... (current is ${fsMB}MB, append ${size}MB, total ${total}MB)"
|
|
||||||
dd if=/dev/zero bs=1M count=$size status=none >> "$file"
|
|
||||||
sync
|
|
||||||
|
|
||||||
freeloop=$(losetup -f)
|
freeloop=$(losetup -f)
|
||||||
losetup $freeloop "$file"
|
losetup $freeloop "$file"
|
||||||
|
|
||||||
if [ "$cmd" = "resize2fs" ]; then
|
if [ "$cmd" = "resize2fs" ]; then
|
||||||
echo "Extend ext filesystem by resize2fs ..."
|
echo "$mode ext filesystem by resize2fs ..."
|
||||||
echo "resize2fs $freeloop ${total}M"
|
echo "resize2fs $freeloop ${total}M"
|
||||||
e2fsck -f $freeloop
|
e2fsck -f $freeloop
|
||||||
resize2fs $freeloop ${total}M
|
resize2fs $freeloop ${total}M
|
||||||
ret=$?
|
ret=$?
|
||||||
else
|
else
|
||||||
echo "Extend xfs filesystem by xfs_growfs ..."
|
echo "$mode xfs filesystem by xfs_growfs ..."
|
||||||
|
|
||||||
tmpdir=$(mktemp -d)
|
tmpdir=$(mktemp -d)
|
||||||
mount $freeloop $tmpdir
|
mount $freeloop $tmpdir
|
||||||
xfs_growfs $freeloop
|
xfs_growfs $freeloop
|
||||||
@@ -87,6 +112,12 @@ fi
|
|||||||
|
|
||||||
losetup -d $freeloop
|
losetup -d $freeloop
|
||||||
|
|
||||||
|
if [ $ret -eq 0 -a "$mode" = "Shrink" ]; then
|
||||||
|
echo "truncate persistent file ..."
|
||||||
|
truncate "$file" -s ${total}M
|
||||||
|
ret=$?
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
if [ $ret -eq 0 ]; then
|
if [ $ret -eq 0 ]; then
|
||||||
echo "======= SUCCESS ========="
|
echo "======= SUCCESS ========="
|
||||||
@@ -94,4 +125,3 @@ else
|
|||||||
echo "======= FAILED ========="
|
echo "======= FAILED ========="
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
@@ -22,6 +22,12 @@ Please refer https://www.ventoy.net/en/doc_start.html for details.
|
|||||||
2. open your browser and visit http://127.0.0.1:24680
|
2. open your browser and visit http://127.0.0.1:24680
|
||||||
|
|
||||||
|
|
||||||
|
========= VentoyGUI ===================
|
||||||
|
VentoyGUI is native GUI program for Linux (GTK/QT)
|
||||||
|
1. Just double-click the file (e.g. VentoyGUI.x86_64)
|
||||||
|
2. If it can not startup after double-click, you can open the terminal and just execute the file (e.g. ./VentoyGUI.x86_64)
|
||||||
|
|
||||||
|
|
||||||
========== CreatePersistentImg.sh ===============
|
========== CreatePersistentImg.sh ===============
|
||||||
|
|
||||||
sudo sh CreatePersistentImg.sh [ -s SIZE_IN_MB ] [ -t FSTYPE ] [ -l LABEL ] for example:
|
sudo sh CreatePersistentImg.sh [ -s SIZE_IN_MB ] [ -t FSTYPE ] [ -l LABEL ] for example:
|
||||||
|
@@ -21,7 +21,7 @@ elif uname -m | egrep -q 'mips64'; then
|
|||||||
else
|
else
|
||||||
export TOOLDIR=i386
|
export TOOLDIR=i386
|
||||||
fi
|
fi
|
||||||
export PATH=./tool/$TOOLDIR:$PATH
|
export PATH="./tool/$TOOLDIR:$PATH"
|
||||||
|
|
||||||
|
|
||||||
echo ''
|
echo ''
|
||||||
|
BIN
INSTALL/VentoyGUI.aarch64
Normal file
BIN
INSTALL/VentoyGUI.aarch64
Normal file
Binary file not shown.
BIN
INSTALL/VentoyGUI.i386
Normal file
BIN
INSTALL/VentoyGUI.i386
Normal file
Binary file not shown.
BIN
INSTALL/VentoyGUI.mips64el
Normal file
BIN
INSTALL/VentoyGUI.mips64el
Normal file
Binary file not shown.
BIN
INSTALL/VentoyGUI.x86_64
Normal file
BIN
INSTALL/VentoyGUI.x86_64
Normal file
Binary file not shown.
@@ -1,109 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if echo "$*" | grep -q '[-]v'; then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_usage() {
|
|
||||||
echo 'Usage: VentoyWebDeepin.sh [ OPTION ]'
|
|
||||||
echo ' OPTION: (optional)'
|
|
||||||
echo ' -H x.x.x.x http server IP address (default is 127.0.0.1)'
|
|
||||||
echo ' -p PORT http server PORT (default is 24680)'
|
|
||||||
echo ' -h print this help'
|
|
||||||
echo ' -v print verbose info'
|
|
||||||
echo ''
|
|
||||||
}
|
|
||||||
|
|
||||||
print_err() {
|
|
||||||
echo ""
|
|
||||||
echo "$*"
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
get_user() {
|
|
||||||
name=$(logname)
|
|
||||||
if [ -n "$name" -a "$name" != "root" ]; then
|
|
||||||
echo $name; return
|
|
||||||
fi
|
|
||||||
|
|
||||||
name=${HOME#/home/}
|
|
||||||
if [ -n "$name" -a "$name" != "root" ]; then
|
|
||||||
echo $name; return
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
uid=$(id -u)
|
|
||||||
if [ $uid -ne 0 ]; then
|
|
||||||
exec sudo sh $0 $*
|
|
||||||
fi
|
|
||||||
|
|
||||||
OLDDIR=$(pwd)
|
|
||||||
|
|
||||||
if uname -m | egrep -q 'aarch64|arm64'; then
|
|
||||||
TOOLDIR=aarch64
|
|
||||||
elif uname -m | egrep -q 'x86_64|amd64'; then
|
|
||||||
TOOLDIR=x86_64
|
|
||||||
elif uname -m | egrep -q 'mips64'; then
|
|
||||||
TOOLDIR=mips64el
|
|
||||||
else
|
|
||||||
TOOLDIR=i386
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f ./tool/$TOOLDIR/V2DServer ]; then
|
|
||||||
if [ -f ${0%VentoyWebDeepin.sh}/tool/$TOOLDIR/V2DServer ]; then
|
|
||||||
cd ${0%VentoyWebDeepin.sh}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
PATH=./tool/$TOOLDIR:$PATH
|
|
||||||
|
|
||||||
if [ ! -f ./boot/boot.img ]; then
|
|
||||||
if [ -d ./grub ]; then
|
|
||||||
echo "Don't run VentoyWebDeepin.sh here, please download the released install package, and run the script in it."
|
|
||||||
else
|
|
||||||
echo "Please run under the correct directory!"
|
|
||||||
fi
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
HOST="127.0.0.1"
|
|
||||||
PORT=24680
|
|
||||||
|
|
||||||
while [ -n "$1" ]; do
|
|
||||||
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
|
|
||||||
print_usage
|
|
||||||
exit 0
|
|
||||||
elif [ "$1" = "-v" ]; then
|
|
||||||
VERBOSE=1
|
|
||||||
elif [ "$1" = "-H" ]; then
|
|
||||||
shift
|
|
||||||
if echo $1 | grep -q '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*'; then
|
|
||||||
HOST="$1"
|
|
||||||
else
|
|
||||||
print_err "Invalid host $1"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
elif [ "$1" = "-p" ]; then
|
|
||||||
shift
|
|
||||||
if [ $1 -gt 0 -a $1 -le 65535 ]; then
|
|
||||||
PORT="$1"
|
|
||||||
else
|
|
||||||
print_err "Invalid port $1"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if ps -ef | grep "V2DServer.*$HOST.*$PORT" | grep -q -v grep; then
|
|
||||||
print_err "Another ventoy server is running now, please close it first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if grep -q -i uos /etc/os-release; then
|
|
||||||
. ./tool/WebUos.sh
|
|
||||||
else
|
|
||||||
. ./tool/WebDeepin.sh
|
|
||||||
fi
|
|
@@ -112,6 +112,15 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
|||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menuentry 'Check menu tip plugin configuration' --class=debug_menutip --class=debug_json --class=F5tool {
|
||||||
|
set pager=1
|
||||||
|
vt_check_plugin_json $vt_plugin_path menu_tip $vtoy_iso_part
|
||||||
|
|
||||||
|
echo -e "\npress ENTER to exit ..."
|
||||||
|
read vtInputKey
|
||||||
|
unset pager
|
||||||
|
}
|
||||||
|
|
||||||
menuentry 'Check menu class plugin configuration' --class=debug_menuclass --class=debug_json --class=F5tool {
|
menuentry 'Check menu class plugin configuration' --class=debug_menuclass --class=debug_json --class=F5tool {
|
||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path menu_class $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path menu_class $vtoy_iso_part
|
||||||
|
@@ -138,6 +138,14 @@ function vt_check_compatible_pe {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function vt_check_compatible_linux {
|
||||||
|
if vt_str_begin "$vt_volume_id" "embootkit"; then
|
||||||
|
set ventoy_compatible=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
function locate_initrd {
|
function locate_initrd {
|
||||||
vt_linux_locate_initrd
|
vt_linux_locate_initrd
|
||||||
|
|
||||||
@@ -164,7 +172,11 @@ function distro_specify_wim_patch {
|
|||||||
vt_windows_collect_wim_patch wim /BOOT/H3_7PE.WIM
|
vt_windows_collect_wim_patch wim /BOOT/H3_7PE.WIM
|
||||||
vt_windows_collect_wim_patch wim /BOOT/H3_8PE.WIM
|
vt_windows_collect_wim_patch wim /BOOT/H3_8PE.WIM
|
||||||
vt_windows_collect_wim_patch wim /BOOT/H3_81PE.WIM
|
vt_windows_collect_wim_patch wim /BOOT/H3_81PE.WIM
|
||||||
fi
|
elif [ -d (loop)/2k10/winpe ]; then
|
||||||
|
vt_windows_collect_wim_patch wim /2k10/winpe/w1086pe.wim
|
||||||
|
vt_windows_collect_wim_patch wim /2k10/winpe/w8x86pe.wim
|
||||||
|
vt_windows_collect_wim_patch wim /2k10/winpe/w7x86pe.wim
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function distro_specify_wim_patch_phase2 {
|
function distro_specify_wim_patch_phase2 {
|
||||||
@@ -757,6 +769,8 @@ function ventoy_reset_nojoliet {
|
|||||||
else
|
else
|
||||||
vt_iso9660_nojoliet 0
|
vt_iso9660_nojoliet 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
vt_append_extra_sector 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function uefi_iso_menu_func {
|
function uefi_iso_menu_func {
|
||||||
@@ -783,6 +797,12 @@ function uefi_iso_menu_func {
|
|||||||
else
|
else
|
||||||
set ventoy_fs_probe=iso9660
|
set ventoy_fs_probe=iso9660
|
||||||
ventoy_reset_nojoliet
|
ventoy_reset_nojoliet
|
||||||
|
|
||||||
|
# Lenovo EasyStartup need an addional sector for boundary check
|
||||||
|
if vt_str_begin "$vt_volume_id" "EasyStartup"; then
|
||||||
|
vt_skip_svd "${vtoy_iso_part}${vt_chosen_path}"
|
||||||
|
vt_append_extra_sector 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
loopback loop "${1}${chosen_path}"
|
loopback loop "${1}${chosen_path}"
|
||||||
@@ -817,6 +837,7 @@ function uefi_iso_menu_func {
|
|||||||
elif [ "$vtoy_os" = "Unix" ]; then
|
elif [ "$vtoy_os" = "Unix" ]; then
|
||||||
uefi_unix_menu_func "$1" "${chosen_path}"
|
uefi_unix_menu_func "$1" "${chosen_path}"
|
||||||
else
|
else
|
||||||
|
vt_check_compatible_linux (loop)
|
||||||
uefi_linux_menu_func "$1" "${chosen_path}"
|
uefi_linux_menu_func "$1" "${chosen_path}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1054,7 +1075,7 @@ function legacy_linux_menu_func {
|
|||||||
ventoy_gui_console
|
ventoy_gui_console
|
||||||
else
|
else
|
||||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
||||||
linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
|
linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
|
||||||
boot
|
boot
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -1121,6 +1142,7 @@ function legacy_iso_menu_func {
|
|||||||
elif [ "$vtoy_os" = "Unix" ]; then
|
elif [ "$vtoy_os" = "Unix" ]; then
|
||||||
legacy_unix_menu_func "$1" "${chosen_path}"
|
legacy_unix_menu_func "$1" "${chosen_path}"
|
||||||
else
|
else
|
||||||
|
vt_check_compatible_linux (loop)
|
||||||
legacy_linux_menu_func "$1" "${chosen_path}"
|
legacy_linux_menu_func "$1" "${chosen_path}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -1203,9 +1225,8 @@ function iso_common_menuentry {
|
|||||||
echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n"
|
echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n"
|
||||||
echo -e "\n The size of the iso file \"$vt_chosen_size\" is invalid. File corrupted ?\n"
|
echo -e "\n The size of the iso file \"$vt_chosen_size\" is invalid. File corrupted ?\n"
|
||||||
echo -e " 此ISO文件的大小 \"$vt_chosen_size\" 有问题,请确认文件是否损坏。\n"
|
echo -e " 此ISO文件的大小 \"$vt_chosen_size\" 有问题,请确认文件是否损坏。\n"
|
||||||
echo -e "\n press ENTER to exit (请按 回车 键返回) ..."
|
echo -e "\n press ENTER to continue (请按 回车 键继续) ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
return
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1487,6 +1508,11 @@ function vtoy_unsupport_menuentry {
|
|||||||
#============================================================#
|
#============================================================#
|
||||||
#
|
#
|
||||||
|
|
||||||
|
function only_uefi_tip {
|
||||||
|
echo -e "\n This IMG file is only supported in UEFI mode. \n"
|
||||||
|
echo -e "\n press ENTER to exit ..."
|
||||||
|
read vtInputKey
|
||||||
|
}
|
||||||
|
|
||||||
function ventoy_img_easyos {
|
function ventoy_img_easyos {
|
||||||
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=$ventoy_busybox_ver"
|
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=$ventoy_busybox_ver"
|
||||||
@@ -1730,6 +1756,74 @@ function ventoy_img_tails {
|
|||||||
vt_unset_boot_opt
|
vt_unset_boot_opt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ventoy_img_fydeos {
|
||||||
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
|
only_uefi_tip
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=64"
|
||||||
|
vt_trailer_cpio ${vtoy_iso_part} "${vt_chosen_path}" noinit
|
||||||
|
|
||||||
|
ventoy_debug_pause
|
||||||
|
|
||||||
|
#boot image file
|
||||||
|
vt_set_boot_opt rdinit=/vtoy/vtoy ventoyos=fydeos
|
||||||
|
vt_img_hook_root
|
||||||
|
|
||||||
|
set grubdisk=vtimghd
|
||||||
|
set grubpartA=(vtimghd,3)
|
||||||
|
set grubpartB=(vtimghd,5)
|
||||||
|
set linuxpartA=(sda,3)
|
||||||
|
set linuxpartB=(sda,5)
|
||||||
|
|
||||||
|
set root=(vtimghd,12)
|
||||||
|
configfile (vtimghd,12)/efi/boot/grub.cfg
|
||||||
|
|
||||||
|
vt_img_unhook_root
|
||||||
|
vt_unset_boot_opt
|
||||||
|
|
||||||
|
unset grubdisk
|
||||||
|
unset grubpartA
|
||||||
|
unset grubpartB
|
||||||
|
unset linuxpartA
|
||||||
|
unset linuxpartB
|
||||||
|
}
|
||||||
|
|
||||||
|
function ventoy_img_cloudready {
|
||||||
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
|
only_uefi_tip
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=64"
|
||||||
|
vt_trailer_cpio ${vtoy_iso_part} "${vt_chosen_path}" noinit
|
||||||
|
|
||||||
|
ventoy_debug_pause
|
||||||
|
|
||||||
|
#boot image file
|
||||||
|
vt_set_boot_opt rdinit=/vtoy/vtoy ventoyos=cloudready
|
||||||
|
vt_img_hook_root
|
||||||
|
|
||||||
|
set grubdisk=vtimghd
|
||||||
|
set grubpartA=(vtimghd,3)
|
||||||
|
set grubpartB=(vtimghd,5)
|
||||||
|
set linuxpartA=(sda,3)
|
||||||
|
set linuxpartB=(sda,5)
|
||||||
|
|
||||||
|
set root=(vtimghd,12)
|
||||||
|
configfile (vtimghd,12)/efi/boot/grub.cfg
|
||||||
|
|
||||||
|
vt_img_unhook_root
|
||||||
|
vt_unset_boot_opt
|
||||||
|
|
||||||
|
unset grubdisk
|
||||||
|
unset grubpartA
|
||||||
|
unset grubpartB
|
||||||
|
unset linuxpartA
|
||||||
|
unset linuxpartB
|
||||||
|
}
|
||||||
|
|
||||||
function ventoy_img_memtest86 {
|
function ventoy_img_memtest86 {
|
||||||
chainloader (vtimghd,1)/efi/boot/BOOTX64.efi
|
chainloader (vtimghd,1)/efi/boot/BOOTX64.efi
|
||||||
boot
|
boot
|
||||||
@@ -1754,6 +1848,7 @@ function legacy_img_memdisk {
|
|||||||
function img_common_menuentry {
|
function img_common_menuentry {
|
||||||
set ventoy_compatible=YES
|
set ventoy_compatible=YES
|
||||||
set ventoy_busybox_ver=32
|
set ventoy_busybox_ver=32
|
||||||
|
unset LoadIsoEfiDriver
|
||||||
|
|
||||||
vt_chosen_img_path vt_chosen_path vt_chosen_size
|
vt_chosen_img_path vt_chosen_path vt_chosen_size
|
||||||
|
|
||||||
@@ -1787,19 +1882,26 @@ function img_common_menuentry {
|
|||||||
|
|
||||||
|
|
||||||
vt_get_fs_label (vtimghd,1) vtImgHd1Label
|
vt_get_fs_label (vtimghd,1) vtImgHd1Label
|
||||||
if [ -d (vtimghd,2)/lib ]; then
|
|
||||||
|
if [ "$vtImgHd1Label" = "STATE" ]; then
|
||||||
|
vt_get_fs_label (vtimghd,3) vtImgHd3Label
|
||||||
|
elif [ -d (vtimghd,2)/lib ]; then
|
||||||
vt_get_fs_label (vtimghd,2) vtImgHd2Label
|
vt_get_fs_label (vtimghd,2) vtImgHd2Label
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e (vtimghd,1)/etc/hostname ]; then
|
if [ -e (vtimghd,1)/etc/hostname ]; then
|
||||||
vt_1st_line (vtimghd,1)/etc/hostname vtImgHostname
|
vt_1st_line (vtimghd,1)/etc/hostname vtImgHostname
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if vt_str_begin "$vtImgHd3Label" "ROOT-"; then
|
||||||
if [ -e (vtimghd,1)/easy.sfs ]; then
|
if [ -f (vtimghd,3)/etc/os-release.d/ID ]; then
|
||||||
ventoy_img_easyos
|
vt_1st_line (vtimghd,3)/etc/os-release.d/ID vt_release_line1
|
||||||
elif [ -e (vtimghd,1)/volumio.initrd ]; then
|
if [ vt_str_begin "$vt_release_line1" "FydeOS" ]; then
|
||||||
ventoy_img_volumio
|
ventoy_img_fydeos
|
||||||
|
fi
|
||||||
|
elif [ -f (vtimghd,3)/etc/cloudready-release ]; then
|
||||||
|
ventoy_img_cloudready
|
||||||
|
fi
|
||||||
elif vt_str_begin "$vtImgHd1Label" "LAKKA"; then
|
elif vt_str_begin "$vtImgHd1Label" "LAKKA"; then
|
||||||
ventoy_img_openelec lakka
|
ventoy_img_openelec lakka
|
||||||
elif vt_str_begin "$vtImgHd1Label" "LIBREELEC"; then
|
elif vt_str_begin "$vtImgHd1Label" "LIBREELEC"; then
|
||||||
@@ -1814,6 +1916,10 @@ function img_common_menuentry {
|
|||||||
ventoy_img_tails
|
ventoy_img_tails
|
||||||
elif [ "$vtImgHd2Label" = "RECALBOX" ]; then
|
elif [ "$vtImgHd2Label" = "RECALBOX" ]; then
|
||||||
ventoy_img_recalbox
|
ventoy_img_recalbox
|
||||||
|
elif [ -e (vtimghd,1)/easy.sfs ]; then
|
||||||
|
ventoy_img_easyos
|
||||||
|
elif [ -e (vtimghd,1)/volumio.initrd ]; then
|
||||||
|
ventoy_img_volumio
|
||||||
elif [ -f (vtimghd,2)/loader/entries/ubos.conf ]; then
|
elif [ -f (vtimghd,2)/loader/entries/ubos.conf ]; then
|
||||||
ventoy_img_ubos
|
ventoy_img_ubos
|
||||||
elif [ -f (vtimghd,2)/etc/openwrt_version ]; then
|
elif [ -f (vtimghd,2)/etc/openwrt_version ]; then
|
||||||
@@ -1823,7 +1929,7 @@ function img_common_menuentry {
|
|||||||
img_unsupport_tip
|
img_unsupport_tip
|
||||||
else
|
else
|
||||||
ventoy_img_memtest86
|
ventoy_img_memtest86
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
vt_linux_chain_data "${vtoy_iso_part}${vt_chosen_path}"
|
vt_linux_chain_data "${vtoy_iso_part}${vt_chosen_path}"
|
||||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 512
|
ventoy_acpi_param ${vtoy_chain_mem_addr} 512
|
||||||
@@ -1857,7 +1963,7 @@ function img_unsupport_menuentry {
|
|||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
set VENTOY_VERSION="1.0.50"
|
set VENTOY_VERSION="1.0.53"
|
||||||
|
|
||||||
#ACPI not compatible with Window7/8, so disable by default
|
#ACPI not compatible with Window7/8, so disable by default
|
||||||
set VTOY_PARAM_NO_ACPI=1
|
set VTOY_PARAM_NO_ACPI=1
|
||||||
@@ -1926,7 +2032,10 @@ else
|
|||||||
set vtoydev=$vtoy_dev
|
set vtoydev=$vtoy_dev
|
||||||
set vtoy_iso_part=($vtoy_dev,1)
|
set vtoy_iso_part=($vtoy_dev,1)
|
||||||
set vtoy_efi_part=($vtoy_dev,2)
|
set vtoy_efi_part=($vtoy_dev,2)
|
||||||
loadfont unicode
|
|
||||||
|
vt_load_file_to_mem "auto" $prefix/fonts/unicode.pf2 vtoy_font_mem
|
||||||
|
loadfont mem:${vtoy_font_mem_addr}:size:${vtoy_font_mem_size}
|
||||||
|
|
||||||
set vt_plugin_path=$vtoy_iso_part
|
set vt_plugin_path=$vtoy_iso_part
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1935,9 +2044,11 @@ vt_load_part_table $vtoydev
|
|||||||
|
|
||||||
#Load Plugin
|
#Load Plugin
|
||||||
if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
|
if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
|
||||||
clear
|
clear
|
||||||
vt_load_plugin $vtoy_iso_part
|
vt_load_plugin $vtoy_iso_part
|
||||||
clear
|
clear
|
||||||
|
else
|
||||||
|
vt_check_json_path_case $vtoy_iso_part
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$VTOY_MENU_TIMEOUT" ]; then
|
if [ -n "$VTOY_MENU_TIMEOUT" ]; then
|
||||||
@@ -2004,6 +2115,15 @@ if [ -n "$VTOY_DEFAULT_KBD_LAYOUT" ]; then
|
|||||||
set_keyboard_layout "$VTOY_DEFAULT_KBD_LAYOUT"
|
set_keyboard_layout "$VTOY_DEFAULT_KBD_LAYOUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$VTOY_PLUGIN_PATH_CASE_MISMATCH" ]; then
|
||||||
|
clear
|
||||||
|
echo "$VTOY_PLUGIN_PATH_CASE_MISMATCH"
|
||||||
|
echo -e "\n\nPath case does not match! ventoy directory and ventoy.json MUST be all lowercase!"
|
||||||
|
echo -e "\n路径大小写不匹配!ventoy 目录和 ventoy.json 文件的名字必须是全部小写,请修正!"
|
||||||
|
echo -e "\n\npress ENTER to continue (请按回车键继续) ..."
|
||||||
|
read vtInputKey
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$VTOY_PLUGIN_SYNTAX_ERROR" ]; then
|
if [ -n "$VTOY_PLUGIN_SYNTAX_ERROR" ]; then
|
||||||
clear
|
clear
|
||||||
echo -e "\n Syntax error detected in ventoy.json, please check! \n"
|
echo -e "\n Syntax error detected in ventoy.json, please check! \n"
|
||||||
|
Binary file not shown.
@@ -105,6 +105,23 @@ else
|
|||||||
echo "BOOTIA32.EFI NOT found ..."
|
echo "BOOTIA32.EFI NOT found ..."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menuentry 'Search and boot xorboot' --class=boot_xorboot --class=F4boot {
|
||||||
|
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||||
|
if search -n -s -f /efi/xorboot/xorboot32.xor; then
|
||||||
|
unset VTOY_SEARCH_NO_VTOYEFI
|
||||||
|
terminal_output console
|
||||||
|
if [ -f /efi/xorboot/bootia32.efi ]; then
|
||||||
|
chainloader /efi/xorboot/bootia32.efi
|
||||||
|
elif [ -f /efi/xorboot/xorboot.efi ]; then
|
||||||
|
chainloader /efi/xorboot/xorboot.efi
|
||||||
|
fi
|
||||||
|
boot
|
||||||
|
else
|
||||||
|
unset VTOY_SEARCH_NO_VTOYEFI
|
||||||
|
echo "xorboot NOT found ..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
elif [ "$grub_cpu" = "arm64" ]; then
|
elif [ "$grub_cpu" = "arm64" ]; then
|
||||||
menuentry 'Search and boot BOOTAA64.EFI' --class=boot_uefi --class=F4boot {
|
menuentry 'Search and boot BOOTAA64.EFI' --class=boot_uefi --class=F4boot {
|
||||||
set VTOY_SEARCH_NO_VTOYEFI=1
|
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||||
@@ -131,9 +148,25 @@ else
|
|||||||
echo "BOOTX64.EFI NOT found ..."
|
echo "BOOTX64.EFI NOT found ..."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menuentry 'Search and boot xorboot' --class=boot_xorboot --class=F4boot {
|
||||||
|
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||||
|
if search -n -s -f /efi/xorboot/xorboot.xor; then
|
||||||
|
unset VTOY_SEARCH_NO_VTOYEFI
|
||||||
|
terminal_output console
|
||||||
|
if [ -f /efi/xorboot/bootx64.efi ]; then
|
||||||
|
chainloader /efi/xorboot/bootx64.efi
|
||||||
|
elif [ -f /efi/xorboot/xorboot.efi ]; then
|
||||||
|
chainloader /efi/xorboot/xorboot.efi
|
||||||
|
fi
|
||||||
|
boot
|
||||||
|
else
|
||||||
|
unset VTOY_SEARCH_NO_VTOYEFI
|
||||||
|
echo "xorboot NOT found ..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -30,13 +30,15 @@ terminal-box: "terminal_box_*.png"
|
|||||||
scrollbar_thumb = "slider_*.png"
|
scrollbar_thumb = "slider_*.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+ progress_bar {
|
+ progress_bar {
|
||||||
id = "__timeout__"
|
id = "__timeout__"
|
||||||
text = "@TIMEOUT_NOTIFICATION_SHORT@"
|
text = "@TIMEOUT_NOTIFICATION_SHORT@"
|
||||||
|
|
||||||
left = 20%
|
left = 90%
|
||||||
width = 60%
|
width = 10%
|
||||||
top = 85%
|
top = 90%
|
||||||
|
|
||||||
text_color = "red"
|
text_color = "red"
|
||||||
bar_style = "*"
|
bar_style = "*"
|
||||||
@@ -93,4 +95,3 @@ terminal-box: "terminal_box_*.png"
|
|||||||
height = 25
|
height = 25
|
||||||
+ label {text = "@VTOY_ISO_UEFI_DRV@" color = "red" align = "left"}
|
+ label {text = "@VTOY_ISO_UEFI_DRV@" color = "red" align = "left"}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
583
INSTALL/tool/VentoyGTK.glade
Normal file
583
INSTALL/tool/VentoyGTK.glade
Normal file
@@ -0,0 +1,583 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
<requires lib="gtk+" version="2.2"/>
|
||||||
|
<object class="GtkImage" id="image_refresh">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkWindow" id="part_cfg_dlg">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="resizable">False</property>
|
||||||
|
<property name="title" translatable="yes">Partition Configuration</property>
|
||||||
|
<property name="modal">True</property>
|
||||||
|
<property name="window_position">center</property>
|
||||||
|
<property name="default_width">460</property>
|
||||||
|
<property name="default_height">270</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed_partcfg_1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_space_check">
|
||||||
|
<property name="width_request">440</property>
|
||||||
|
<property name="height_request">50</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed_space_check">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="space_check_btn">
|
||||||
|
<property name="width_request">380</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">10</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">10</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_space_value">
|
||||||
|
<property name="width_request">220</property>
|
||||||
|
<property name="height_request">60</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed_space_value">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="entry_reserve_space">
|
||||||
|
<property name="width_request">200</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="invisible_char">*</property>
|
||||||
|
<property name="primary_icon_activatable">False</property>
|
||||||
|
<property name="secondary_icon_activatable">False</property>
|
||||||
|
<property name="primary_icon_sensitive">True</property>
|
||||||
|
<property name="secondary_icon_sensitive">True</property>
|
||||||
|
<property name="width_chars">10</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">10</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">60</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_space_unit">
|
||||||
|
<property name="width_request">220</property>
|
||||||
|
<property name="height_request">60</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed_space_unit">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="comboboxtext_unit">
|
||||||
|
<property name="width_request">200</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="active">1</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">MB</item>
|
||||||
|
<item translatable="yes">GB</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">10</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">230</property>
|
||||||
|
<property name="y">60</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_space_align">
|
||||||
|
<property name="width_request">440</property>
|
||||||
|
<property name="height_request">50</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed_space_alian">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="space_align_btn">
|
||||||
|
<property name="width_request">380</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="active">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">10</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">140</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button_partcfg_ok">
|
||||||
|
<property name="label" translatable="yes">OK</property>
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">90</property>
|
||||||
|
<property name="y">210</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button_partcfg_cancel">
|
||||||
|
<property name="label" translatable="yes">Cancel</property>
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">270</property>
|
||||||
|
<property name="y">210</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_dummy1">
|
||||||
|
<property name="width_request">460</property>
|
||||||
|
<property name="height_request">25</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">250</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkWindow" id="window">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="resizable">False</property>
|
||||||
|
<property name="title" translatable="yes">Ventoy2Disk</property>
|
||||||
|
<property name="modal">False</property>
|
||||||
|
<property name="window_position">center</property>
|
||||||
|
<property name="default_width">480</property>
|
||||||
|
<property name="default_height">365</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed_main">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuBar" id="menubar1">
|
||||||
|
<property name="width_request">480</property>
|
||||||
|
<property name="height_request">22</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="menu_option">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Options</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<child type="submenu">
|
||||||
|
<object class="GtkMenu" id="submenu_option">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckMenuItem" id="menu_item_secure">
|
||||||
|
<property name="label">Secure Boot Support</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="menu_part_style">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Partition Style</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<child type="submenu">
|
||||||
|
<object class="GtkMenu" id="submenu_part_style">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkRadioMenuItem" id="menu_item_mbr">
|
||||||
|
<property name="label">MBR</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="active">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkRadioMenuItem" id="menu_item_gpt">
|
||||||
|
<property name="label">GPT</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="menu_item_part_cfg">
|
||||||
|
<property name="label">Partition Configuration</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="menu_item_clear">
|
||||||
|
<property name="label">Clear Ventoy</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckMenuItem" id="menu_item_show_all">
|
||||||
|
<property name="label">Show All Devices</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="menu_language">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Language</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<child type="submenu">
|
||||||
|
<object class="GtkMenu" id="submenu_language">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_device">
|
||||||
|
<property name="width_request">460</property>
|
||||||
|
<property name="height_request">75</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed5">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="combobox_devlist">
|
||||||
|
<property name="width_request">380</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">5</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button_refresh">
|
||||||
|
<property name="width_request">50</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="image">image_refresh</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">398</property>
|
||||||
|
<property name="y">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="label">
|
||||||
|
<object class="GtkLabel" id="label_device">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"> Device </property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">40</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_pkg_ver">
|
||||||
|
<property name="width_request">228</property>
|
||||||
|
<property name="height_request">70</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0.5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed3">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage" id="image_secure_local">
|
||||||
|
<property name="width_request">10</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">False</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">20</property>
|
||||||
|
<property name="y">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label_local_ver_value">
|
||||||
|
<property name="width_request">120</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"></property>
|
||||||
|
<property name="use_markup">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">45</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label_local_part_style">
|
||||||
|
<property name="width_request">45</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">MBR</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">180</property>
|
||||||
|
<property name="y">30</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="label">
|
||||||
|
<object class="GtkLabel" id="label_local_ver">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"> Ventoy In Package </property>
|
||||||
|
<property name="use_markup">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">132</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame3">
|
||||||
|
<property name="width_request">228</property>
|
||||||
|
<property name="height_request">70</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0.5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed4">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage" id="image_secure_dev">
|
||||||
|
<property name="width_request">10</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">20</property>
|
||||||
|
<property name="y">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label_dev_ver_value">
|
||||||
|
<property name="width_request">120</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"></property>
|
||||||
|
<property name="use_markup">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">45</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label_dev_part_style">
|
||||||
|
<property name="width_request">45</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"></property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">180</property>
|
||||||
|
<property name="y">30</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="label">
|
||||||
|
<object class="GtkLabel" id="label_device_ver">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"> Ventoy In Device </property>
|
||||||
|
<property name="use_markup">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">243</property>
|
||||||
|
<property name="y">132</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame4">
|
||||||
|
<property name="width_request">460</property>
|
||||||
|
<property name="height_request">50</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFixed" id="fixed2">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkProgressBar" id="progressbar1">
|
||||||
|
<property name="width_request">440</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="fraction">0.0</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">8</property>
|
||||||
|
<property name="y">10</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="label">
|
||||||
|
<object class="GtkLabel" id="label_status">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes"> Status - READY</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">215</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button_install">
|
||||||
|
<property name="label" translatable="yes">Install</property>
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">100</property>
|
||||||
|
<property name="y">300</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button_update">
|
||||||
|
<property name="label" translatable="yes">Update</property>
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="height_request">40</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">280</property>
|
||||||
|
<property name="y">300</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="frame_dummy2">
|
||||||
|
<property name="width_request">460</property>
|
||||||
|
<property name="height_request">25</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">345</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
Binary file not shown.
BIN
INSTALL/tool/aarch64/Ventoy2Disk.gtk3
Normal file
BIN
INSTALL/tool/aarch64/Ventoy2Disk.gtk3
Normal file
Binary file not shown.
BIN
INSTALL/tool/aarch64/Ventoy2Disk.qt5
Normal file
BIN
INSTALL/tool/aarch64/Ventoy2Disk.qt5
Normal file
Binary file not shown.
23
INSTALL/tool/distro_gui_type.json
Normal file
23
INSTALL/tool/distro_gui_type.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "env",
|
||||||
|
"name": "DESKTOP_SESSION",
|
||||||
|
"condition": "equal",
|
||||||
|
"expression": "deepin",
|
||||||
|
"gui": "qt5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "env",
|
||||||
|
"name": "DESKTOP_SESSION",
|
||||||
|
"condition": "equal",
|
||||||
|
"expression": "uos",
|
||||||
|
"gui": "qt5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "env",
|
||||||
|
"name": "DESKTOP_SESSION",
|
||||||
|
"condition": "equal",
|
||||||
|
"expression": "ukui",
|
||||||
|
"gui": "gtk3"
|
||||||
|
}
|
||||||
|
]
|
Binary file not shown.
BIN
INSTALL/tool/i386/Ventoy2Disk.gtk2
Normal file
BIN
INSTALL/tool/i386/Ventoy2Disk.gtk2
Normal file
Binary file not shown.
BIN
INSTALL/tool/i386/Ventoy2Disk.gtk3
Normal file
BIN
INSTALL/tool/i386/Ventoy2Disk.gtk3
Normal file
Binary file not shown.
BIN
INSTALL/tool/i386/Ventoy2Disk.qt5
Normal file
BIN
INSTALL/tool/i386/Ventoy2Disk.qt5
Normal file
Binary file not shown.
Binary file not shown.
BIN
INSTALL/tool/mips64el/Ventoy2Disk.gtk3
Normal file
BIN
INSTALL/tool/mips64el/Ventoy2Disk.gtk3
Normal file
Binary file not shown.
BIN
INSTALL/tool/mips64el/Ventoy2Disk.qt5
Normal file
BIN
INSTALL/tool/mips64el/Ventoy2Disk.qt5
Normal file
Binary file not shown.
@@ -320,7 +320,7 @@ EOF
|
|||||||
for i in 0 1 2 3 4 5 6 7 8 9; do
|
for i in 0 1 2 3 4 5 6 7 8 9; do
|
||||||
check_umount_disk "$PART2"
|
check_umount_disk "$PART2"
|
||||||
|
|
||||||
if mkfs.vfat -F 16 -n VTOYEFI $PART2; then
|
if mkfs.vfat -F 16 -n VTOYEFI -s 1 $PART2; then
|
||||||
echo 'success'
|
echo 'success'
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
|
Binary file not shown.
BIN
INSTALL/tool/x86_64/Ventoy2Disk.gtk2
Normal file
BIN
INSTALL/tool/x86_64/Ventoy2Disk.gtk2
Normal file
Binary file not shown.
BIN
INSTALL/tool/x86_64/Ventoy2Disk.gtk3
Normal file
BIN
INSTALL/tool/x86_64/Ventoy2Disk.gtk3
Normal file
Binary file not shown.
BIN
INSTALL/tool/x86_64/Ventoy2Disk.qt5
Normal file
BIN
INSTALL/tool/x86_64/Ventoy2Disk.qt5
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,7 +8,8 @@ fi
|
|||||||
|
|
||||||
dos2unix -q ./tool/ventoy_lib.sh
|
dos2unix -q ./tool/ventoy_lib.sh
|
||||||
dos2unix -q ./tool/VentoyWorker.sh
|
dos2unix -q ./tool/VentoyWorker.sh
|
||||||
|
dos2unix -q ./tool/VentoyGTK.glade
|
||||||
|
dos2unix -q ./tool/distro_gui_type.json
|
||||||
|
|
||||||
. ./tool/ventoy_lib.sh
|
. ./tool/ventoy_lib.sh
|
||||||
|
|
||||||
@@ -77,9 +78,13 @@ cp $OPT ./tool/ENROLL_THIS_KEY_IN_MOKMANAGER.cer $tmpmnt/
|
|||||||
|
|
||||||
|
|
||||||
mkdir -p $tmpmnt/tool
|
mkdir -p $tmpmnt/tool
|
||||||
cp $OPT ./tool/i386/mount.exfat-fuse $tmpmnt/tool/mount.exfat-fuse_i386
|
# cp $OPT ./tool/i386/mount.exfat-fuse $tmpmnt/tool/mount.exfat-fuse_i386
|
||||||
cp $OPT ./tool/x86_64/mount.exfat-fuse $tmpmnt/tool/mount.exfat-fuse_x86_64
|
# cp $OPT ./tool/x86_64/mount.exfat-fuse $tmpmnt/tool/mount.exfat-fuse_x86_64
|
||||||
cp $OPT ./tool/aarch64/mount.exfat-fuse $tmpmnt/tool/mount.exfat-fuse_aarch64
|
# cp $OPT ./tool/aarch64/mount.exfat-fuse $tmpmnt/tool/mount.exfat-fuse_aarch64
|
||||||
|
# to save space
|
||||||
|
cp $OPT ./tool/i386/vtoygpt $tmpmnt/tool/mount.exfat-fuse_i386
|
||||||
|
cp $OPT ./tool/x86_64/vtoygpt $tmpmnt/tool/mount.exfat-fuse_x86_64
|
||||||
|
cp $OPT ./tool/aarch64/vtoygpt $tmpmnt/tool/mount.exfat-fuse_aarch64
|
||||||
|
|
||||||
|
|
||||||
rm -f $tmpmnt/grub/i386-pc/*.img
|
rm -f $tmpmnt/grub/i386-pc/*.img
|
||||||
@@ -100,8 +105,9 @@ cp $OPT ./tool $tmpdir/
|
|||||||
rm -f $tmpdir/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
|
rm -f $tmpdir/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
|
||||||
cp $OPT Ventoy2Disk.sh $tmpdir/
|
cp $OPT Ventoy2Disk.sh $tmpdir/
|
||||||
cp $OPT VentoyWeb.sh $tmpdir/
|
cp $OPT VentoyWeb.sh $tmpdir/
|
||||||
|
cp $OPT VentoyGUI* $tmpdir/
|
||||||
|
|
||||||
|
|
||||||
#cp $OPT Ventoy.desktop $tmpdir/
|
|
||||||
cp $OPT README $tmpdir/
|
cp $OPT README $tmpdir/
|
||||||
cp $OPT plugin $tmpdir/
|
cp $OPT plugin $tmpdir/
|
||||||
cp $OPT CreatePersistentImg.sh $tmpdir/
|
cp $OPT CreatePersistentImg.sh $tmpdir/
|
||||||
@@ -109,7 +115,7 @@ cp $OPT ExtendPersistentImg.sh $tmpdir/
|
|||||||
dos2unix -q $tmpdir/Ventoy2Disk.sh
|
dos2unix -q $tmpdir/Ventoy2Disk.sh
|
||||||
dos2unix -q $tmpdir/VentoyWeb.sh
|
dos2unix -q $tmpdir/VentoyWeb.sh
|
||||||
|
|
||||||
#dos2unix -q $tmpdir/Ventoy.desktop
|
|
||||||
dos2unix -q $tmpdir/CreatePersistentImg.sh
|
dos2unix -q $tmpdir/CreatePersistentImg.sh
|
||||||
dos2unix -q $tmpdir/ExtendPersistentImg.sh
|
dos2unix -q $tmpdir/ExtendPersistentImg.sh
|
||||||
|
|
||||||
@@ -127,11 +133,15 @@ rm -f ventoy-${curver}-linux.tar.gz
|
|||||||
|
|
||||||
CurDir=$PWD
|
CurDir=$PWD
|
||||||
|
|
||||||
for d in i386 x86_64 aarch64; do
|
for d in i386 x86_64 aarch64 mips64el; do
|
||||||
cd $tmpdir/tool/$d
|
cd $tmpdir/tool/$d
|
||||||
for file in $(ls); do
|
for file in $(ls); do
|
||||||
if [ "$file" != "xzcat" ]; then
|
if [ "$file" != "xzcat" ]; then
|
||||||
xz --check=crc32 $file
|
if echo "$file" | grep -q '^Ventoy2Disk'; then
|
||||||
|
chmod +x $file
|
||||||
|
else
|
||||||
|
xz --check=crc32 $file
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
cd $CurDir
|
cd $CurDir
|
||||||
@@ -142,8 +152,11 @@ find $tmpdir/ -type d -exec chmod 755 "{}" +
|
|||||||
find $tmpdir/ -type f -exec chmod 644 "{}" +
|
find $tmpdir/ -type f -exec chmod 644 "{}" +
|
||||||
chmod +x $tmpdir/Ventoy2Disk.sh
|
chmod +x $tmpdir/Ventoy2Disk.sh
|
||||||
chmod +x $tmpdir/VentoyWeb.sh
|
chmod +x $tmpdir/VentoyWeb.sh
|
||||||
|
chmod +x $tmpdir/VentoyGUI*
|
||||||
|
|
||||||
|
cp $OPT $LANG_DIR/languages.json $tmpdir/tool/
|
||||||
|
|
||||||
|
|
||||||
#chmod +x $tmpdir/Ventoy.desktop
|
|
||||||
chmod +x $tmpdir/CreatePersistentImg.sh
|
chmod +x $tmpdir/CreatePersistentImg.sh
|
||||||
chmod +x $tmpdir/ExtendPersistentImg.sh
|
chmod +x $tmpdir/ExtendPersistentImg.sh
|
||||||
|
|
||||||
@@ -156,6 +169,7 @@ cp $OPT Ventoy2Disk*.exe $tmpdir/
|
|||||||
cp $OPT $LANG_DIR/languages.json $tmpdir/ventoy/
|
cp $OPT $LANG_DIR/languages.json $tmpdir/ventoy/
|
||||||
rm -rf $tmpdir/tool
|
rm -rf $tmpdir/tool
|
||||||
rm -f $tmpdir/*.sh
|
rm -f $tmpdir/*.sh
|
||||||
|
rm -f $tmpdir/VentoyGUI.*
|
||||||
rm -rf $tmpdir/WebUI
|
rm -rf $tmpdir/WebUI
|
||||||
rm -f $tmpdir/README
|
rm -f $tmpdir/README
|
||||||
|
|
||||||
|
@@ -170,12 +170,12 @@
|
|||||||
"STR_INSTALL":"Install",
|
"STR_INSTALL":"Install",
|
||||||
"STR_UPDATE":"Update",
|
"STR_UPDATE":"Update",
|
||||||
"STR_UPDATE_TIP":"Upgrade operation is safe, ISO files will be unchanged.#@Continue?",
|
"STR_UPDATE_TIP":"Upgrade operation is safe, ISO files will be unchanged.#@Continue?",
|
||||||
"STR_INSTALL_TIP":"The disk will be formatted and all the data will be lost.#@Continue?",
|
"STR_INSTALL_TIP":"The device will be formatted and all the data will be lost.#@Continue?",
|
||||||
"STR_INSTALL_TIP2":"The disk will be formatted and all the data will be lost.#@Continue? (Double Check)",
|
"STR_INSTALL_TIP2":"The device will be formatted and all the data will be lost.#@Continue? (Double Check)",
|
||||||
"STR_INSTALL_SUCCESS":"Congratulations!#@Ventoy has been successfully installed to the device.",
|
"STR_INSTALL_SUCCESS":"Congratulations!#@Ventoy has been successfully installed to the device.",
|
||||||
"STR_INSTALL_FAILED":"An error occurred during the installation. You can replug the USB and try again. Check log.txt for detail.",
|
"STR_INSTALL_FAILED":"An error occurred during the installation. You can replug the USB device and try again. Check log.txt for detail.",
|
||||||
"STR_UPDATE_SUCCESS":"Congratulations!#@Ventoy has been successfully updated to the device.",
|
"STR_UPDATE_SUCCESS":"Congratulations!#@Ventoy has been successfully updated to the device.",
|
||||||
"STR_UPDATE_FAILED":"An error occurred during the update. You can replug the USB and try again. Check log.txt for detail.",
|
"STR_UPDATE_FAILED":"An error occurred during the update. You can replug the USB device and try again. Check log.txt for detail.",
|
||||||
"STR_WAIT_PROCESS":"A thread is running, please wait...",
|
"STR_WAIT_PROCESS":"A thread is running, please wait...",
|
||||||
"STR_MENU_OPTION":"Option",
|
"STR_MENU_OPTION":"Option",
|
||||||
"STR_MENU_SECURE_BOOT":"Secure Boot Support",
|
"STR_MENU_SECURE_BOOT":"Secure Boot Support",
|
||||||
@@ -186,9 +186,9 @@
|
|||||||
"STR_SPACE_VAL_INVALID":"Invalid value for reserved space",
|
"STR_SPACE_VAL_INVALID":"Invalid value for reserved space",
|
||||||
"STR_MENU_CLEAR":"Clear Ventoy",
|
"STR_MENU_CLEAR":"Clear Ventoy",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoy has been successfully removed from the device.",
|
"STR_CLEAR_SUCCESS":"Ventoy has been successfully removed from the device.",
|
||||||
"STR_CLEAR_FAILED":"An error occurred when clearing Ventoy from disk. You can replug the USB and try again. Check log.txt for details.",
|
"STR_CLEAR_FAILED":"An error occurred when clearing Ventoy from disk. You can replug the USB device and try again. Check log.txt for details.",
|
||||||
"STR_MENU_PART_STYLE":"Partition Style",
|
"STR_MENU_PART_STYLE":"Partition Style",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Please select GPT for disk over 2TB",
|
"STR_DISK_2TB_MBR_ERROR":"Please select GPT for devices over 2TB",
|
||||||
"STR_SHOW_ALL_DEV":"Show All Devices",
|
"STR_SHOW_ALL_DEV":"Show All Devices",
|
||||||
"STR_PART_ALIGN_4KB":"Align partitions with 4KB",
|
"STR_PART_ALIGN_4KB":"Align partitions with 4KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Communication error:",
|
"STR_WEB_COMMUNICATION_ERR":"Communication error:",
|
||||||
@@ -360,51 +360,51 @@
|
|||||||
"name":"Turkish (Türkçe)",
|
"name":"Turkish (Türkçe)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"Erhan Kültür/crasadure",
|
"Author":"Erhan Kültür/crasadure, Oğuz Ersen",
|
||||||
|
|
||||||
"STR_ERROR":"Hata",
|
"STR_ERROR":"Hata",
|
||||||
"STR_WARNING":"Uyarı",
|
"STR_WARNING":"Uyarı",
|
||||||
"STR_INFO":"Bilgi",
|
"STR_INFO":"Bilgi",
|
||||||
"STR_INCORRECT_DIR":"Lütfen doğru dizin altında çalıştırın!",
|
"STR_INCORRECT_DIR":"Lütfen doğru dizin altında çalıştırın!",
|
||||||
"STR_INCORRECT_TREE_DIR":"Dosyayı burada çalıştırma, lütfen yayınlanan en son kurulum paketini indirin ve oradan çalıştırın.",
|
"STR_INCORRECT_TREE_DIR":"Dosyayı burada çalıştırmayın, lütfen yayınlanan en son kurulum paketini indirin ve oradan çalıştırın.",
|
||||||
"STR_DEVICE":"Aygıt",
|
"STR_DEVICE":"Aygıt",
|
||||||
"STR_LOCAL_VER":"Ventoy GÜNCEL Sürüm",
|
"STR_LOCAL_VER":"Ventoy GÜNCEL Sürüm",
|
||||||
"STR_DISK_VER":"Cihazdaki Ventoy Sürümü",
|
"STR_DISK_VER":"Aygıttaki Ventoy Sürümü",
|
||||||
"STR_STATUS":"Durum - HAZIR",
|
"STR_STATUS":"Durum - HAZIR",
|
||||||
"STR_INSTALL":"Kur",
|
"STR_INSTALL":"Kur",
|
||||||
"STR_UPDATE":"Güncelle",
|
"STR_UPDATE":"Güncelle",
|
||||||
"STR_UPDATE_TIP":"Ventoyun versiyon bilgisi güncellenecek, ISO dosyalarınız bundan etkilenmiyecek.#@Devam edilsinmi?",
|
"STR_UPDATE_TIP":"Yükseltme işlemi güvenlidir, ISO dosyalarınız bundan etkilenmeyecek.#@Devam edilsin mi?",
|
||||||
"STR_INSTALL_TIP":"Disk biçimlendirilecek ve tüm veriler kaybolacak.#@Devam edilsinmi?",
|
"STR_INSTALL_TIP":"Disk biçimlendirilecek ve tüm veriler kaybolacak.#@Devam edilsin mi?",
|
||||||
"STR_INSTALL_TIP2":"Disk biçimlendirilecek ve tüm veriler kaybolacak.#@Devam edilsinmi? (Son UYARI!)",
|
"STR_INSTALL_TIP2":"Disk biçimlendirilecek ve tüm veriler kaybolacak.#@Devam edilsin mi? (Son UYARI!)",
|
||||||
"STR_INSTALL_SUCCESS":"Tebrikler!#@ventoy cihaza başarıyla kuruldu.",
|
"STR_INSTALL_SUCCESS":"Tebrikler!#@Ventoy, aygıta başarıyla kuruldu.",
|
||||||
"STR_INSTALL_FAILED":"Yükleme sırasında bir hata oluştu. USB'yi yeniden takıp tekrar deneyebilirsiniz. Ayrıntılar için log.txt dosyasına bakın.",
|
"STR_INSTALL_FAILED":"Kurulum sırasında bir hata oluştu. USB'yi yeniden takıp tekrar deneyebilirsiniz. Ayrıntılar için log.txt dosyasına bakın.",
|
||||||
"STR_UPDATE_SUCCESS":"Tebrikler!#@ventoy cihazda başarıyla güncellendi.",
|
"STR_UPDATE_SUCCESS":"Tebrikler!#@Ventoy, aygıtta başarıyla güncellendi.",
|
||||||
"STR_UPDATE_FAILED":"Güncelleme sırasında bir hata oluştu. USB'yi yeniden takıp tekrar deneyebilirsiniz. Ayrıntılar için log.txt dosyasına bakın.",
|
"STR_UPDATE_FAILED":"Güncelleme sırasında bir hata oluştu. USB'yi yeniden takıp tekrar deneyebilirsiniz. Ayrıntılar için log.txt dosyasına bakın.",
|
||||||
"STR_WAIT_PROCESS":"Mevcut işlem çalışıyor, lütfen bekleyiniz ...",
|
"STR_WAIT_PROCESS":"Mevcut işlem çalışıyor, lütfen bekleyin...",
|
||||||
"STR_MENU_OPTION":"Seçenek",
|
"STR_MENU_OPTION":"Seçenek",
|
||||||
"STR_MENU_SECURE_BOOT":"Güvenli Önyükleme",
|
"STR_MENU_SECURE_BOOT":"Güvenli Önyükleme Desteği",
|
||||||
"STR_MENU_PART_CFG":"Partisyon Yapılandırması",
|
"STR_MENU_PART_CFG":"Bölüm Yapılandırması",
|
||||||
"STR_BTN_OK":"Tamam",
|
"STR_BTN_OK":"Tamam",
|
||||||
"STR_BTN_CANCEL":"İptal et",
|
"STR_BTN_CANCEL":"İptal",
|
||||||
"STR_PRESERVE_SPACE":"Diskin sonunda ayrılmış disk partisyonu oluştur",
|
"STR_PRESERVE_SPACE":"Diskin sonunda biraz ayrılmış alan bırak",
|
||||||
"STR_SPACE_VAL_INVALID":"Ayrılmış alan için geçersiz değer girdiniz",
|
"STR_SPACE_VAL_INVALID":"Ayrılmış alan için geçersiz değer girdiniz",
|
||||||
"STR_MENU_CLEAR":"Ventoyu USB Diskten Sil",
|
"STR_MENU_CLEAR":"Ventoy'u USB Diskten Sil",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoy başarılı bir şekilde diskten silindi",
|
"STR_CLEAR_SUCCESS":"Ventoy başarılı bir şekilde diskten silindi",
|
||||||
"STR_CLEAR_FAILED":"Ventoy USB diskten temizlenirken bir hata oluştu.Lütfen USB Diski tekrar takın ve tekrar deneyin.Hatanın detayları için Log.txt dosyasını okuyun",
|
"STR_CLEAR_FAILED":"Ventoy USB diskten temizlenirken bir hata oluştu. USB'yi yeniden takıp tekrar deneyebilirsiniz. Ayrıntılar için log.txt dosyasına bakın",
|
||||||
"STR_MENU_PART_STYLE":"Partisyon Yapısı",
|
"STR_MENU_PART_STYLE":"Bölüm Yapısı",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"2TB üstündeki diskler için lütfen GPT disk yapısını seçiniz.",
|
"STR_DISK_2TB_MBR_ERROR":"2TB üstündeki diskler için lütfen GPT disk yapısını seçin.",
|
||||||
"STR_SHOW_ALL_DEV":"Tüm Cihazları Göster",
|
"STR_SHOW_ALL_DEV":"Tüm Aygıtları Göster",
|
||||||
"STR_PART_ALIGN_4KB":"Tüm Partisyonları 4KB düzeninde hizala",
|
"STR_PART_ALIGN_4KB":"Tüm bölümleri 4KB düzeninde hizala",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Iletişim Hatası:",
|
"STR_WEB_COMMUNICATION_ERR":"İletişim Hatası:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Iletişim Hatası:Uzaktan erişim hizmeti anormal durumda",
|
"STR_WEB_REMOTE_ABNORMAL":"İletişim Hatası:Uzaktan erişim hizmeti anormal durumda",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Iletişim hatası: Uzaktan erişim isteği zaman aşımına uğradı",
|
"STR_WEB_REQUEST_TIMEOUT":"İletişim hatası: Uzaktan erişim isteği zaman aşımına uğradı",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Iletişim hatası: Uzaktan web erişim hizmeti erişilemez durumda",
|
"STR_WEB_SERVICE_UNAVAILABLE":"İletişim hatası: Uzaktan web erişim hizmeti erişilemez durumda",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Daemon durumu güncellendi,lütfen daha sonra tekrar deneyiniz.",
|
"STR_WEB_TOKEN_MISMATCH":"Daemon durumu güncellendi,lütfen daha sonra tekrar deneyin.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Hizmet meşgul, lütfen daha sonra tekrar deneyin.",
|
"STR_WEB_SERVICE_BUSY":"Hizmet meşgul, lütfen daha sonra tekrar deneyin.",
|
||||||
"STR_MENU_VTSI_CREATE":"VTSI dosyası oluştur",
|
"STR_MENU_VTSI_CREATE":"VTSI Dosyası Oluştur",
|
||||||
"STR_VTSI_CREATE_TIP":"Şu an cihaza yazılmayacak,sadece bir VTSI dosyası oluşturulacak#@Devam edilsin mi?",
|
"STR_VTSI_CREATE_TIP":"Şu an aygıta yazılmayacak,sadece bir VTSI dosyası oluşturulacak#@Devam edilsin mi?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI dosyası başarılı bi şekilde oluşturuldu!#@Ventoy un cihaza kurulumunu tamamlamak için Rufus(3.15+) programını kullanabilirsiniz.",
|
"STR_VTSI_CREATE_SUCCESS":"VTSI dosyası başarılı bir şekilde oluşturuldu!#@Ventoy'un aygıta kurulumunu tamamlamak için Rufus(3.15+) programını kullanabilirsiniz.",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI dosyası oluşturma Başarısız!",
|
"STR_VTSI_CREATE_FAILED":"VTSI dosyası oluşturma başarısız oldu!",
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -621,7 +621,7 @@
|
|||||||
"STR_WARNING":"Advertencia",
|
"STR_WARNING":"Advertencia",
|
||||||
"STR_INFO":"Información",
|
"STR_INFO":"Información",
|
||||||
"STR_INCORRECT_DIR":"¡Por favor, ejecuta bajo el directorio correcto!",
|
"STR_INCORRECT_DIR":"¡Por favor, ejecuta bajo el directorio correcto!",
|
||||||
"STR_INCORRECT_TREE_DIR":"No me ejecute aquí, por favor descarga el paquete de instalación lanzado, y ejecútalo allí.",
|
"STR_INCORRECT_TREE_DIR":"No me ejecutes aquí, por favor descarga el paquete de instalación lanzado, y ejecútalo allí.",
|
||||||
"STR_DEVICE":"Dispositivo",
|
"STR_DEVICE":"Dispositivo",
|
||||||
"STR_LOCAL_VER":"Ventoy En Paquete",
|
"STR_LOCAL_VER":"Ventoy En Paquete",
|
||||||
"STR_DISK_VER":"Ventoy En Dispositivo",
|
"STR_DISK_VER":"Ventoy En Dispositivo",
|
||||||
@@ -632,9 +632,9 @@
|
|||||||
"STR_INSTALL_TIP":"El dispositivo será formateado y todos los datos se perderán.#@¿Continuar?",
|
"STR_INSTALL_TIP":"El dispositivo será formateado y todos los datos se perderán.#@¿Continuar?",
|
||||||
"STR_INSTALL_TIP2":"El dispositivo será formateado y todos los datos se perderán.#@¿Continuar? (Doble Comprobación)",
|
"STR_INSTALL_TIP2":"El dispositivo será formateado y todos los datos se perderán.#@¿Continuar? (Doble Comprobación)",
|
||||||
"STR_INSTALL_SUCCESS":"¡Felicitaciones!#@Ventoy ha sido instalado exitosamente en el dispositivo.",
|
"STR_INSTALL_SUCCESS":"¡Felicitaciones!#@Ventoy ha sido instalado exitosamente en el dispositivo.",
|
||||||
"STR_INSTALL_FAILED":"Ocurrió un error durante la instalación. Puedes reconectar el USB e intentar de nuevo. Comprueba log.txt para detalle.",
|
"STR_INSTALL_FAILED":"Ocurrió un error durante la instalación. Puedes reconectar el dispositivo USB e intentar de nuevo. Comprueba log.txt para detalle.",
|
||||||
"STR_UPDATE_SUCCESS":"¡Felicitaciones!#@Ventoy ha sido actualizado exitosamente en el dispositivo.",
|
"STR_UPDATE_SUCCESS":"¡Felicitaciones!#@Ventoy ha sido actualizado exitosamente en el dispositivo.",
|
||||||
"STR_UPDATE_FAILED":"Ocurrió un error durante la actualización. Puedes reconectar el USB e intentar de nuevo. Comprueba log.txt para detalle.",
|
"STR_UPDATE_FAILED":"Ocurrió un error durante la actualización. Puedes reconectar el dispositivo USB e intentar de nuevo. Comprueba log.txt para detalle.",
|
||||||
"STR_WAIT_PROCESS":"Un hilo está ejecutándose, por favor espera...",
|
"STR_WAIT_PROCESS":"Un hilo está ejecutándose, por favor espera...",
|
||||||
"STR_MENU_OPTION":"Opción",
|
"STR_MENU_OPTION":"Opción",
|
||||||
"STR_MENU_SECURE_BOOT":"Soporte De Arranque Seguro",
|
"STR_MENU_SECURE_BOOT":"Soporte De Arranque Seguro",
|
||||||
@@ -645,7 +645,7 @@
|
|||||||
"STR_SPACE_VAL_INVALID":"Valor inválido para espacio reservado",
|
"STR_SPACE_VAL_INVALID":"Valor inválido para espacio reservado",
|
||||||
"STR_MENU_CLEAR":"Limpiar Ventoy",
|
"STR_MENU_CLEAR":"Limpiar Ventoy",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoy ha sido removido exitosamente desde el dispositivo.",
|
"STR_CLEAR_SUCCESS":"Ventoy ha sido removido exitosamente desde el dispositivo.",
|
||||||
"STR_CLEAR_FAILED":"Ocurrió un error al limpiar Ventoy desde el dispositivo. Puedes reconectar el USB e intentar de nuevo. Comprueba log.txt para detalle.",
|
"STR_CLEAR_FAILED":"Ocurrió un error al limpiar Ventoy desde el dispositivo. Puedes reconectar el dispositivo USB e intentar de nuevo. Comprueba log.txt para detalle.",
|
||||||
"STR_MENU_PART_STYLE":"Estilo De Partición",
|
"STR_MENU_PART_STYLE":"Estilo De Partición",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Por favor selecciona GPT para dispositivos sobre 2TB",
|
"STR_DISK_2TB_MBR_ERROR":"Por favor selecciona GPT para dispositivos sobre 2TB",
|
||||||
"STR_SHOW_ALL_DEV":"Mostrar Todos Los Dispositivos",
|
"STR_SHOW_ALL_DEV":"Mostrar Todos Los Dispositivos",
|
||||||
@@ -666,7 +666,7 @@
|
|||||||
"name":"Russian (Pусский)",
|
"name":"Russian (Pусский)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"BL4CKH47H4CK3R",
|
"Author":"BL4CKH47H4CK3R, Teraskull",
|
||||||
|
|
||||||
"STR_ERROR":"Ошибка",
|
"STR_ERROR":"Ошибка",
|
||||||
"STR_WARNING":"Предупреждение",
|
"STR_WARNING":"Предупреждение",
|
||||||
@@ -707,10 +707,10 @@
|
|||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Ошибка связи: Служба недоступна",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Ошибка связи: Служба недоступна",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Статус демона обновлен. Повторите попытку позже.",
|
"STR_WEB_TOKEN_MISMATCH":"Статус демона обновлен. Повторите попытку позже.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Служба занята, повторите попытку позже.",
|
"STR_WEB_SERVICE_BUSY":"Служба занята, повторите попытку позже.",
|
||||||
"STR_MENU_VTSI_CREATE":"Generate VTSI File",
|
"STR_MENU_VTSI_CREATE":"Создать файл VTSI",
|
||||||
"STR_VTSI_CREATE_TIP":"This time will not write to the device, but only generate a VTSI file#@Continue?",
|
"STR_VTSI_CREATE_TIP":"На этот раз Ventoy не будет установлен на устройство, а будет только создан файл VTSI#@Продолжить?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI file created successfully!#@You can use Rufus(3.15+) to write it to the device so as to complete the installation of Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"Файл VTSI создан успешно!#@Вы можете использовать Rufus(3.15+), чтобы записать его на устройство, для завершения установки Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI file created failed.",
|
"STR_VTSI_CREATE_FAILED":"Ошибка создания файла VTSI.",
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -833,12 +833,12 @@
|
|||||||
"STR_INSTALL":"Installeren",
|
"STR_INSTALL":"Installeren",
|
||||||
"STR_UPDATE":"Bijwerken",
|
"STR_UPDATE":"Bijwerken",
|
||||||
"STR_UPDATE_TIP":"Upgraden is veilig: ISO-bestanden blijven ongewijzigd.#@Doorgaan?",
|
"STR_UPDATE_TIP":"Upgraden is veilig: ISO-bestanden blijven ongewijzigd.#@Doorgaan?",
|
||||||
"STR_INSTALL_TIP":"De schijf wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan?",
|
"STR_INSTALL_TIP":"Het apparaat wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan?",
|
||||||
"STR_INSTALL_TIP2":"De schijf wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan? (Dubbelcheck)",
|
"STR_INSTALL_TIP2":"Het apparaat wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan? (Dubbelcheck)",
|
||||||
"STR_INSTALL_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes op het apparaat geïnstalleerd.",
|
"STR_INSTALL_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes op het apparaat geïnstalleerd.",
|
||||||
"STR_INSTALL_FAILED":"Er is een fout opgetreden tijdens de installatie. U kunt het apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
"STR_INSTALL_FAILED":"Er is een fout opgetreden tijdens de installatie. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
||||||
"STR_UPDATE_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes bijgewerkt op het apparaat.",
|
"STR_UPDATE_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes bijgewerkt op het apparaat.",
|
||||||
"STR_UPDATE_FAILED":"Er is een fout opgetreden tijdens de update. U kunt het apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
"STR_UPDATE_FAILED":"Er is een fout opgetreden tijdens de update. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
||||||
"STR_WAIT_PROCESS":"Ventoy is nog bezig, even geduld...",
|
"STR_WAIT_PROCESS":"Ventoy is nog bezig, even geduld...",
|
||||||
"STR_MENU_OPTION":"Opties",
|
"STR_MENU_OPTION":"Opties",
|
||||||
"STR_MENU_SECURE_BOOT":"Ondersteuning voor Secure Boot",
|
"STR_MENU_SECURE_BOOT":"Ondersteuning voor Secure Boot",
|
||||||
@@ -849,9 +849,9 @@
|
|||||||
"STR_SPACE_VAL_INVALID":"Ongeldige waarde voor gereserveerde ruimte",
|
"STR_SPACE_VAL_INVALID":"Ongeldige waarde voor gereserveerde ruimte",
|
||||||
"STR_MENU_CLEAR":"Ventoy verwijderen",
|
"STR_MENU_CLEAR":"Ventoy verwijderen",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoy is met succes verwijderd van het apparaat.",
|
"STR_CLEAR_SUCCESS":"Ventoy is met succes verwijderd van het apparaat.",
|
||||||
"STR_CLEAR_FAILED":"Er is een fout opgetreden bij het verwijderen van Ventoy. U kunt het apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
"STR_CLEAR_FAILED":"Er is een fout opgetreden bij het verwijderen van Ventoy. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
||||||
"STR_MENU_PART_STYLE":"Partitietabel",
|
"STR_MENU_PART_STYLE":"Partitietabel",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Selecteer GPT als partitietabel voor schijven groter dan 2 TB",
|
"STR_DISK_2TB_MBR_ERROR":"Selecteer GPT als partitietabel voor apparaten groter dan 2 TB",
|
||||||
"STR_SHOW_ALL_DEV":"Alle apparaten weergeven",
|
"STR_SHOW_ALL_DEV":"Alle apparaten weergeven",
|
||||||
"STR_PART_ALIGN_4KB":"Partities uitlijnen met 4 KB",
|
"STR_PART_ALIGN_4KB":"Partities uitlijnen met 4 KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Communicatiefout:",
|
"STR_WEB_COMMUNICATION_ERR":"Communicatiefout:",
|
||||||
@@ -919,60 +919,60 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Japanese (日本語)",
|
"name":"Japanese (日本語)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Yu Gothic UI",
|
||||||
"FontSize":16,
|
"FontSize":14,
|
||||||
"Author":"taichi eto,Bentnand",
|
"Author":"taichi eto,Bentnand",
|
||||||
|
|
||||||
"STR_ERROR":"エラー",
|
"STR_ERROR":"エラー",
|
||||||
"STR_WARNING":"警告",
|
"STR_WARNING":"警告",
|
||||||
"STR_INFO":"情報",
|
"STR_INFO":"情報",
|
||||||
"STR_INCORRECT_DIR":"正しいディレクトリーで実行してください",
|
"STR_INCORRECT_DIR":"正しいディレクトリーで実行してください",
|
||||||
"STR_INCORRECT_TREE_DIR":"ここで実行するには、パッケージをインストールしてください。.",
|
"STR_INCORRECT_TREE_DIR":"ここで実行するには、パッケージを導入してください。",
|
||||||
"STR_DEVICE":"デバイス",
|
"STR_DEVICE":"機器",
|
||||||
"STR_LOCAL_VER":"Ventoy In Package",
|
"STR_LOCAL_VER":"パッケージ中のVentoy",
|
||||||
"STR_DISK_VER":"Ventoy In Device",
|
"STR_DISK_VER":"機器中のVentoy",
|
||||||
"STR_STATUS":"Status - 準備完了",
|
"STR_STATUS":"状態 - 準備完了",
|
||||||
"STR_INSTALL":"インストール",
|
"STR_INSTALL":"導入",
|
||||||
"STR_UPDATE":"更新",
|
"STR_UPDATE":"更新",
|
||||||
"STR_UPDATE_TIP":"アップグレード可能です、ISOファイルは改変されません。.#@続行?",
|
"STR_UPDATE_TIP":"更新可能です、ISOファイルは改変されません。#@続行しますか?",
|
||||||
"STR_INSTALL_TIP":"選択されたディスクは完全に初期化され、保存されたデータは二度と復元できません。#@続行?",
|
"STR_INSTALL_TIP":"選択した機器は完全に初期化され、保存されたデータは二度と復元できません。#@続行しますか?",
|
||||||
"STR_INSTALL_TIP2":"選択されたディスクは完全に初期化され、保存されたデータは二度と復元できません。#@続行? (再確認)",
|
"STR_INSTALL_TIP2":"選択した機器は完全に初期化され、保存されたデータは二度と復元できません。#@続行しますか?(再確認)",
|
||||||
"STR_INSTALL_SUCCESS":"Congratulations!#@Ventoy は正常にインストールされました",
|
"STR_INSTALL_SUCCESS":"おめでとうございます。#@Ventoy は正常に導入されました。",
|
||||||
"STR_INSTALL_FAILED":"インストール中にエラーが発生しました。デバイスを再接続してもう一度やり直してください。 詳細ログ log.txt ",
|
"STR_INSTALL_FAILED":"導入中にエラーが発生しました。機器を再接続してもう一度やり直してください。 詳細な記録は log.txt にあります。",
|
||||||
"STR_UPDATE_SUCCESS":"Congratulations!#@Ventoy は正常にアップデートされました.",
|
"STR_UPDATE_SUCCESS":"おめでとうございます。#@Ventoy は正常に更新されました。",
|
||||||
"STR_UPDATE_FAILED":"更新中にエラーが発生しました。デバイスを再接続してもう一度やり直してください。. 詳細ログ log.txt",
|
"STR_UPDATE_FAILED":"更新中にエラーが発生しました。機器を再接続してもう一度やり直してください。詳細な記録は log.txt にあります。",
|
||||||
"STR_WAIT_PROCESS":"処理中...",
|
"STR_WAIT_PROCESS":"スレッドが稼動しています。お待ちください...",
|
||||||
"STR_MENU_OPTION":"設定",
|
"STR_MENU_OPTION":"設定",
|
||||||
"STR_MENU_SECURE_BOOT":"Secure Boot",
|
"STR_MENU_SECURE_BOOT":"セキュアブート",
|
||||||
"STR_MENU_PART_CFG":"パーティション構成",
|
"STR_MENU_PART_CFG":"区画構成",
|
||||||
"STR_BTN_OK":"OK",
|
"STR_BTN_OK":"了解",
|
||||||
"STR_BTN_CANCEL":"キャンセル",
|
"STR_BTN_CANCEL":"取消",
|
||||||
"STR_PRESERVE_SPACE":"ディスクの下部にある程度のスペースを確保する",
|
"STR_PRESERVE_SPACE":"機器の最後に領域を確保する",
|
||||||
"STR_SPACE_VAL_INVALID":"予約スペースの無効な値",
|
"STR_SPACE_VAL_INVALID":"確保する領域の値が無効です",
|
||||||
"STR_MENU_CLEAR":"Ventoyを削除",
|
"STR_MENU_CLEAR":"Ventoyを削除",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoyがディスクから削除されました。",
|
"STR_CLEAR_SUCCESS":"Ventoyが機器から削除されました。",
|
||||||
"STR_CLEAR_FAILED":"Ventoyをディスクから削除できませんでした。USBを再挿入してみてください。 詳細ログ log.txt",
|
"STR_CLEAR_FAILED":"Ventoyを機器から削除できませんでした。機器を再接続してもう一度やり直してください。詳細な記録は log.txt にあります。",
|
||||||
"STR_MENU_PART_STYLE":"パーティションスタイル",
|
"STR_MENU_PART_STYLE":"区画の構成方式",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"2TB以上のディスクにはGPTを使用してください。",
|
"STR_DISK_2TB_MBR_ERROR":"2TB以上の機器にはGPTを使用してください。",
|
||||||
"STR_SHOW_ALL_DEV":"すべてのデバイスを表示",
|
"STR_SHOW_ALL_DEV":"すべての機器を表示",
|
||||||
"STR_PART_ALIGN_4KB":"パーティションを4KBに揃える",
|
"STR_PART_ALIGN_4KB":"区画単位を4KBに揃える",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Communication error:",
|
"STR_WEB_COMMUNICATION_ERR":"通信エラー:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Communication error: remote abnormal",
|
"STR_WEB_REMOTE_ABNORMAL":"通信エラー: 通信先で異常が発生しています",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Communication error: Request timed out",
|
"STR_WEB_REQUEST_TIMEOUT":"通信エラー: 要求が時間切れしました",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Communication error: Service Unavailable",
|
"STR_WEB_SERVICE_UNAVAILABLE":"通信エラー: サービスが利用できません",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"デーモンのステータスが更新されました。しばらくしてから再試行してください。",
|
"STR_WEB_TOKEN_MISMATCH":"デーモンの状態が更新されました。しばらくしてから再試行してください。",
|
||||||
"STR_WEB_SERVICE_BUSY":"サービスがビジーです。後で再試行してください。",
|
"STR_WEB_SERVICE_BUSY":"サービスが繁忙です。後で再試行してください。",
|
||||||
"STR_MENU_VTSI_CREATE":"Generate VTSI File",
|
"STR_MENU_VTSI_CREATE":"VTSIファイルを生成する",
|
||||||
"STR_VTSI_CREATE_TIP":"This time will not write to the device, but only generate a VTSI file#@Continue?",
|
"STR_VTSI_CREATE_TIP":"VTSIファイルを生成し,記憶装置への書き込みは行いません。#@続行しますか?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI file created successfully!#@You can use Rufus(3.15+) to write it to the device so as to complete the installation of Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"VTSIファイルが生成されました。#@Rufus(3.15以上の版)を使って記憶装置に書き込んで,Ventoyの導入を完遂しましょう。",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI file created failed.",
|
"STR_VTSI_CREATE_FAILED":"VTSIファイルを生成できませんでした。",
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Italian (Italiano)",
|
"name":"Italian (Italiano)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"AverageUser2",
|
"Author":"AverageUser2,Albano Battistella",
|
||||||
|
|
||||||
"STR_ERROR":"Errore",
|
"STR_ERROR":"Errore",
|
||||||
"STR_WARNING":"Attenzione",
|
"STR_WARNING":"Attenzione",
|
||||||
@@ -980,14 +980,14 @@
|
|||||||
"STR_INCORRECT_DIR":"Si prega di eseguire nella cartella corretta",
|
"STR_INCORRECT_DIR":"Si prega di eseguire nella cartella corretta",
|
||||||
"STR_INCORRECT_TREE_DIR":"Non eseguire qui, scarica il pacchetto di installazione ed avvialo",
|
"STR_INCORRECT_TREE_DIR":"Non eseguire qui, scarica il pacchetto di installazione ed avvialo",
|
||||||
"STR_DEVICE":"Dispositivo",
|
"STR_DEVICE":"Dispositivo",
|
||||||
"STR_LOCAL_VER":"Versione Ventoy locale",
|
"STR_LOCAL_VER":"Versione Locale di Ventoy",
|
||||||
"STR_DISK_VER":"Ventoy nel dispositivo",
|
"STR_DISK_VER":"Ventoy nel dispositivo",
|
||||||
"STR_STATUS":"Stato - PRONTO",
|
"STR_STATUS":"Stato - PRONTO",
|
||||||
"STR_INSTALL":"Installa",
|
"STR_INSTALL":"Installa",
|
||||||
"STR_UPDATE":"Aggiorna",
|
"STR_UPDATE":"Aggiorna",
|
||||||
"STR_UPDATE_TIP":"L'aggiornamento è sicuro, i file presenti nel dispositivo rimarranno invariati.#@Continue?",
|
"STR_UPDATE_TIP":"L'aggiornamento è sicuro, i file presenti nel dispositivo rimarranno invariati.#@Continuare?",
|
||||||
"STR_INSTALL_TIP":"Il disco verrà formattato e tutti i dati saranno persi.#@Continue?",
|
"STR_INSTALL_TIP":"Il disco verrà formattato e tutti i dati saranno persi.#@Continuare?",
|
||||||
"STR_INSTALL_TIP2":"Il disco verrà formattato e tutti i dati saranno persi.#@Continue?' (Seconda Verifica)",
|
"STR_INSTALL_TIP2":"Il disco verrà formattato e tutti i dati saranno persi.#@Continuare?' (Seconda Verifica)",
|
||||||
"STR_INSTALL_SUCCESS":"Congratulazioni!#@Ventoy è stato installato con successo nel dispositivo",
|
"STR_INSTALL_SUCCESS":"Congratulazioni!#@Ventoy è stato installato con successo nel dispositivo",
|
||||||
"STR_INSTALL_FAILED":"Si è verificato un errore durante l'installazione. Reinserisci il dispostivo e riprova. Controlla il file log.txt per i dettagli.",
|
"STR_INSTALL_FAILED":"Si è verificato un errore durante l'installazione. Reinserisci il dispostivo e riprova. Controlla il file log.txt per i dettagli.",
|
||||||
"STR_UPDATE_SUCCESS":"Congratulazioni!#@Ventoy è stato aggiornato con successo nel dispositivo",
|
"STR_UPDATE_SUCCESS":"Congratulazioni!#@Ventoy è stato aggiornato con successo nel dispositivo",
|
||||||
@@ -1007,16 +1007,16 @@
|
|||||||
"STR_DISK_2TB_MBR_ERROR":"Seleziona GPT per dischi con dimensioni maggiori di 2TB",
|
"STR_DISK_2TB_MBR_ERROR":"Seleziona GPT per dischi con dimensioni maggiori di 2TB",
|
||||||
"STR_SHOW_ALL_DEV":"Mostra tutti i dispositivi",
|
"STR_SHOW_ALL_DEV":"Mostra tutti i dispositivi",
|
||||||
"STR_PART_ALIGN_4KB":"Allinea le partizioni con 4KB",
|
"STR_PART_ALIGN_4KB":"Allinea le partizioni con 4KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Communication error:",
|
"STR_WEB_COMMUNICATION_ERR":"Errore di comunicazione:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Communication error: remote abnormal",
|
"STR_WEB_REMOTE_ABNORMAL":"Errore di comunicazione: remoto anormale",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Communication error: Request timed out",
|
"STR_WEB_REQUEST_TIMEOUT":"Errore di comunicazione: richiesta scaduta",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Communication error: Service Unavailable",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Errore di comunicazione: servizio non disponibile",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Daemon status updated, please retry later.",
|
"STR_WEB_TOKEN_MISMATCH":"Stato del demone aggiornato, riprova più tardi.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Service is busy, please retry later.",
|
"STR_WEB_SERVICE_BUSY":"Il servizio è occupato, riprova più tardi.",
|
||||||
"STR_MENU_VTSI_CREATE":"Generate VTSI File",
|
"STR_MENU_VTSI_CREATE":"Genera file VTSI",
|
||||||
"STR_VTSI_CREATE_TIP":"This time will not write to the device, but only generate a VTSI file#@Continue?",
|
"STR_VTSI_CREATE_TIP":"Questa volta non scriverà sul dispositivo, ma genererà solo un file VTSI#@Continuare?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI file created successfully!#@You can use Rufus(3.15+) to write it to the device so as to complete the installation of Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"File VTSI creato con successo!#@Puoiusare Rufus(3.15+)per scrivere sul dispositivo in modo da completare l'installazione di Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI file created failed.",
|
"STR_VTSI_CREATE_FAILED":"Creazione File VTSI non riuscito.",
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1727,10 +1727,10 @@
|
|||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Помилка зв'язку: Служба недоступна",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Помилка зв'язку: Служба недоступна",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Статус демона оновлено. Повторіть спробу пізніше.",
|
"STR_WEB_TOKEN_MISMATCH":"Статус демона оновлено. Повторіть спробу пізніше.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Служба зайнята, повторіть спробу пізніше.",
|
"STR_WEB_SERVICE_BUSY":"Служба зайнята, повторіть спробу пізніше.",
|
||||||
"STR_MENU_VTSI_CREATE":"Generate VTSI File",
|
"STR_MENU_VTSI_CREATE":"Створити файл VTSI",
|
||||||
"STR_VTSI_CREATE_TIP":"This time will not write to the device, but only generate a VTSI file#@Continue?",
|
"STR_VTSI_CREATE_TIP":"Цього разу Ventoy не буде встановлено на пристрій, а лише буде створено файл VTSI#@Продовжити?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI file created successfully!#@You can use Rufus(3.15+) to write it to the device so as to complete the installation of Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"Файл VTSI створено успішно!#@Ви можете використати Rufus(3.15+), щоб записати його на пристрій, для завершення встановлення Ventoy",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI file created failed.",
|
"STR_VTSI_CREATE_FAILED":"Не вдалося створити файл VTSI.",
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1753,9 +1753,9 @@
|
|||||||
"STR_UPDATE_TIP":"Η λειτουργία αναβάθμισης είναι ασφαλής, τα αρχεία ISO δεν θα αλλάξουν.#@Συνέχεια;",
|
"STR_UPDATE_TIP":"Η λειτουργία αναβάθμισης είναι ασφαλής, τα αρχεία ISO δεν θα αλλάξουν.#@Συνέχεια;",
|
||||||
"STR_INSTALL_TIP":"Ο δίσκος θα μορφοποιηθεί και όλα τα δεδομένα θα χαθούν.#@Συνέχεια;",
|
"STR_INSTALL_TIP":"Ο δίσκος θα μορφοποιηθεί και όλα τα δεδομένα θα χαθούν.#@Συνέχεια;",
|
||||||
"STR_INSTALL_TIP2":"Ο δίσκος θα μορφοποιηθεί και όλα τα δεδομένα θα χαθούν.#@Συνέχεια; (Επανελέγξτε)",
|
"STR_INSTALL_TIP2":"Ο δίσκος θα μορφοποιηθεί και όλα τα δεδομένα θα χαθούν.#@Συνέχεια; (Επανελέγξτε)",
|
||||||
"STR_INSTALL_SUCCESS":"Συγχαρητήρια!#Το @Ventoy έχει εγκατασταθεί με επιτυχία στη συσκευή.",
|
"STR_INSTALL_SUCCESS":"Συγχαρητήρια!#@Ventoy έχει εγκατασταθεί με επιτυχία στη συσκευή.",
|
||||||
"STR_INSTALL_FAILED":"Παρουσιάστηκε σφάλμα κατά την εγκατάσταση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
|
"STR_INSTALL_FAILED":"Παρουσιάστηκε σφάλμα κατά την εγκατάσταση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
|
||||||
"STR_UPDATE_SUCCESS":"Συγχαρητήρια!#Το @Ventoy ενημερώθηκε με επιτυχία στη συσκευή.",
|
"STR_UPDATE_SUCCESS":"Συγχαρητήρια!#@Ventoy ενημερώθηκε με επιτυχία στη συσκευή.",
|
||||||
"STR_UPDATE_FAILED":"Παρουσιάστηκε σφάλμα κατά την ενημέρωση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
|
"STR_UPDATE_FAILED":"Παρουσιάστηκε σφάλμα κατά την ενημέρωση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
|
||||||
"STR_WAIT_PROCESS":"Ένα νήμα εκτελείται, παρακαλώ περιμένετε...",
|
"STR_WAIT_PROCESS":"Ένα νήμα εκτελείται, παρακαλώ περιμένετε...",
|
||||||
"STR_MENU_OPTION":"Επιλογές",
|
"STR_MENU_OPTION":"Επιλογές",
|
||||||
|
60
LinuxGUI/EXLIB/README.txt
Normal file
60
LinuxGUI/EXLIB/README.txt
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
====== ARM64 ======
|
||||||
|
1. Download CentOS-7-aarch64-Everything-2009.iso from internet.
|
||||||
|
2. mount CentOS-7-aarch64-Everything-2009.iso /mnt
|
||||||
|
3. sh prepare_lib_aarch64.sh /mnt/Packages/
|
||||||
|
|
||||||
|
|
||||||
|
====== MIPS64EL ======
|
||||||
|
1. build dpkg for CentOS7
|
||||||
|
download dpkg_1.18.25.tar.xz from internet.
|
||||||
|
cd dpkg-1.18.25
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
cp -a ./src/dpkg /sbin/
|
||||||
|
cp -a ./dpkg-deb/dpkg-deb /sbin/
|
||||||
|
|
||||||
|
2. download debian 10.x mips64el DVD iso (e.g. debian-10.9.0-mips64el-DVD-1.iso) form internet
|
||||||
|
3. mount debian-10.9.0-mips64el-DVD-1.iso /mnt
|
||||||
|
4. sh prepare_gtk_lib_mips64el.sh /mnt/
|
||||||
|
5. download the following packages from internet and dpkg -x each of them
|
||||||
|
pool/main/g/gtk+3.0/libgtk-3-dev_3.24.5-1_mips64el.deb
|
||||||
|
pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mips64el.deb
|
||||||
|
pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mips64el.deb
|
||||||
|
pool/main/d/double-conversion/libdouble-conversion1_3.1.0-3_mips64el.deb
|
||||||
|
pool/main/libg/libglvnd/libgl1_1.3.2-1~bpo10+2_mips64el.deb
|
||||||
|
pool/main/libg/libglvnd/libglvnd0_1.3.2-1~bpo10+2_mips64el.deb
|
||||||
|
pool/main/libg/libglvnd/libglx0_1.3.2-1~bpo10+2_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5core5a_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5dbus5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5gui5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5network5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5opengl5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5opengl5-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5widgets5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/libqt5xml5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/qt5-qmake_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/qtbase5-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/qtbase5-examples_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
pool/main/q/qtbase-opensource-src/qtbase5-private-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb
|
||||||
|
|
||||||
|
|
||||||
|
==== I386 ===
|
||||||
|
We need a CentOS8 environment
|
||||||
|
Install CentOS 8 x86_64 system.
|
||||||
|
yum update
|
||||||
|
yum install gcc
|
||||||
|
yum install gcc-c++
|
||||||
|
yum install gcc.i686
|
||||||
|
yum install glibc.i686 glibc-devel.i686 glibc-headers.i686 glibc-static.i686 glibc-nss-devel.i686
|
||||||
|
yum install libstdc++.i686
|
||||||
|
yum install harfbuzz.i686
|
||||||
|
yum install zlib.i686
|
||||||
|
yum install mesa-libGL.i686
|
||||||
|
|
||||||
|
pack all /usr /etc directories and extract to /opt/CentOS8/
|
||||||
|
|
||||||
|
|
||||||
|
|
57
LinuxGUI/EXLIB/aarch64libs
Normal file
57
LinuxGUI/EXLIB/aarch64libs
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
gtk3-
|
||||||
|
qt5
|
||||||
|
GL
|
||||||
|
icu
|
||||||
|
glib2-
|
||||||
|
pango-
|
||||||
|
cairo-
|
||||||
|
gdk-pixbuf2-
|
||||||
|
libXcursor-
|
||||||
|
libcap-
|
||||||
|
pcre-
|
||||||
|
libffi-
|
||||||
|
libthai-
|
||||||
|
fribidi-
|
||||||
|
libXrender-
|
||||||
|
libxcb-
|
||||||
|
pixman-
|
||||||
|
libpng-
|
||||||
|
libselinux-
|
||||||
|
zlib-
|
||||||
|
libwayland-
|
||||||
|
wayland-
|
||||||
|
libglvnd-
|
||||||
|
elfutils-
|
||||||
|
libattr-
|
||||||
|
libX11-
|
||||||
|
libXi-
|
||||||
|
libXfixes-
|
||||||
|
libepoxy-
|
||||||
|
harfbuzz-
|
||||||
|
fontconfig-
|
||||||
|
freetype-
|
||||||
|
libXinerama-
|
||||||
|
libXrandr-
|
||||||
|
libXcomposite-
|
||||||
|
libXdamage-
|
||||||
|
libxkbcommon-
|
||||||
|
libuuid-
|
||||||
|
libmount-
|
||||||
|
atk-
|
||||||
|
libblkid-
|
||||||
|
graphite2-
|
||||||
|
libXau-
|
||||||
|
bzip2-
|
||||||
|
expat-
|
||||||
|
libXext-
|
||||||
|
pcre2-
|
||||||
|
pcre-
|
||||||
|
at-spi2-atk
|
||||||
|
dbus-
|
||||||
|
dbus-libs
|
||||||
|
systemd-libs
|
||||||
|
at-spi2-core
|
||||||
|
xz-libs
|
||||||
|
lz4-
|
||||||
|
libgcrypt-
|
||||||
|
libgpg-error-
|
28
LinuxGUI/EXLIB/download_lib.sh
Normal file
28
LinuxGUI/EXLIB/download_lib.sh
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "please input url"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
proxy_opt="-x $2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf download
|
||||||
|
mkdir -p download
|
||||||
|
cd download
|
||||||
|
|
||||||
|
grep pool ../README.txt | while read line; do
|
||||||
|
a="$line"
|
||||||
|
b=$(basename "$a")
|
||||||
|
echo "downloading $b ..."
|
||||||
|
curl -s $1/debian/"$a" $proxy_opt -o "$b"
|
||||||
|
|
||||||
|
a=$(echo $line | sed "s/mips64el/i386/g")
|
||||||
|
b=$(basename "$a")
|
||||||
|
echo "downloading $b ..."
|
||||||
|
curl -s $1/debian/"$a" $proxy_opt -o "$b"
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
7
LinuxGUI/EXLIB/i386libs
Normal file
7
LinuxGUI/EXLIB/i386libs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
libmd
|
||||||
|
libzstd
|
||||||
|
libpcre2-16
|
||||||
|
libicu
|
||||||
|
qt5
|
||||||
|
libgpg-error
|
||||||
|
libpng
|
52
LinuxGUI/EXLIB/mips64ellibs
Normal file
52
LinuxGUI/EXLIB/mips64ellibs
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
libmd
|
||||||
|
libzstd
|
||||||
|
libpcre2-16
|
||||||
|
libicu
|
||||||
|
qt5
|
||||||
|
libglib2
|
||||||
|
libgtk-3
|
||||||
|
libpango
|
||||||
|
libharfbuzz
|
||||||
|
pixbuf2
|
||||||
|
atk
|
||||||
|
wayland
|
||||||
|
libx11
|
||||||
|
libxi6
|
||||||
|
epoxy
|
||||||
|
cairo
|
||||||
|
composite
|
||||||
|
damage
|
||||||
|
libxfixes
|
||||||
|
libxkbcommon
|
||||||
|
libfontconfig
|
||||||
|
libfreetype
|
||||||
|
libxinerama
|
||||||
|
libxrandr
|
||||||
|
libxcursor
|
||||||
|
libxext
|
||||||
|
libthai
|
||||||
|
libfribidi
|
||||||
|
libpixman
|
||||||
|
libpng
|
||||||
|
libxcb
|
||||||
|
libxrender
|
||||||
|
zlib1g
|
||||||
|
libmount
|
||||||
|
libselinux
|
||||||
|
libffi
|
||||||
|
libpcre3
|
||||||
|
libdbus
|
||||||
|
libatspi
|
||||||
|
libgraphite
|
||||||
|
libexpat
|
||||||
|
libuuid
|
||||||
|
libdatrie
|
||||||
|
libxdmcp
|
||||||
|
libblkid
|
||||||
|
libxau
|
||||||
|
libsystemd
|
||||||
|
libbsd
|
||||||
|
liblz4
|
||||||
|
liblzma
|
||||||
|
libgcrypt
|
||||||
|
libgpg-error
|
19
LinuxGUI/EXLIB/prepare_lib_aarch64.sh
Normal file
19
LinuxGUI/EXLIB/prepare_lib_aarch64.sh
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -d $1 ]; then
|
||||||
|
echo "$1 not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf aarch64
|
||||||
|
mkdir aarch64
|
||||||
|
cd aarch64
|
||||||
|
|
||||||
|
cat ../aarch64libs | while read a; do
|
||||||
|
ls -1 $1/*$a* | while read rpm; do
|
||||||
|
echo "extract ${rpm##*/} ..."
|
||||||
|
rpm2cpio $rpm | cpio -idmu --quiet
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
25
LinuxGUI/EXLIB/prepare_lib_i386.sh
Normal file
25
LinuxGUI/EXLIB/prepare_lib_i386.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -d $1/pool ]; then
|
||||||
|
echo "$1/pool not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf i386
|
||||||
|
mkdir i386
|
||||||
|
cd i386
|
||||||
|
|
||||||
|
cat ../i386libs | while read line; do
|
||||||
|
find "$1/pool" -name "*${line}*.deb" | while read deb; do
|
||||||
|
echo "extract ${deb##*/} ..."
|
||||||
|
dpkg -x $deb .
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
ls -1 ../download/*i386.deb | while read line; do
|
||||||
|
echo "extract ${line} ..."
|
||||||
|
dpkg -x "$line" .
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
25
LinuxGUI/EXLIB/prepare_lib_mips64el.sh
Normal file
25
LinuxGUI/EXLIB/prepare_lib_mips64el.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -d $1/pool ]; then
|
||||||
|
echo "$1/pool not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf mips64el
|
||||||
|
mkdir mips64el
|
||||||
|
cd mips64el
|
||||||
|
|
||||||
|
cat ../mips64ellibs | while read line; do
|
||||||
|
find "$1/pool" -name "*${line}*.deb" | while read deb; do
|
||||||
|
echo "extract ${deb##*/} ..."
|
||||||
|
dpkg -x $deb .
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
ls -1 ../download/*mips64el.deb | while read line; do
|
||||||
|
echo "extract ${line} ..."
|
||||||
|
dpkg -x "$line" .
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
@@ -31,9 +31,6 @@
|
|||||||
#define VTOYEFI_PART_BYTES (32 * 1024 * 1024)
|
#define VTOYEFI_PART_BYTES (32 * 1024 * 1024)
|
||||||
#define VTOYEFI_PART_SECTORS 65536
|
#define VTOYEFI_PART_SECTORS 65536
|
||||||
|
|
||||||
#define VTOY_LOG_FILE "log.txt"
|
|
||||||
|
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
|
|
||||||
typedef struct vtoy_guid
|
typedef struct vtoy_guid
|
||||||
|
@@ -25,6 +25,8 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <linux/limits.h>
|
||||||
#include <ventoy_define.h>
|
#include <ventoy_define.h>
|
||||||
#include <ventoy_util.h>
|
#include <ventoy_util.h>
|
||||||
#include <ventoy_json.h>
|
#include <ventoy_json.h>
|
||||||
|
@@ -26,8 +26,10 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <linux/limits.h>
|
||||||
#include <ventoy_define.h>
|
#include <ventoy_define.h>
|
||||||
|
|
||||||
|
extern char g_log_file[PATH_MAX];
|
||||||
static int g_ventoy_log_level = VLOG_DEBUG;
|
static int g_ventoy_log_level = VLOG_DEBUG;
|
||||||
static pthread_mutex_t g_log_mutex;
|
static pthread_mutex_t g_log_mutex;
|
||||||
|
|
||||||
@@ -68,7 +70,7 @@ void ventoy_syslog_newline(int level, const char *Fmt, ...)
|
|||||||
va_end(arg);
|
va_end(arg);
|
||||||
|
|
||||||
pthread_mutex_lock(&g_log_mutex);
|
pthread_mutex_lock(&g_log_mutex);
|
||||||
fp = fopen(VTOY_LOG_FILE, "a+");
|
fp = fopen(g_log_file, "a+");
|
||||||
if (fp)
|
if (fp)
|
||||||
{
|
{
|
||||||
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s\n",
|
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s\n",
|
||||||
@@ -96,7 +98,7 @@ void ventoy_syslog_printf(const char *Fmt, ...)
|
|||||||
va_end(arg);
|
va_end(arg);
|
||||||
|
|
||||||
pthread_mutex_lock(&g_log_mutex);
|
pthread_mutex_lock(&g_log_mutex);
|
||||||
fp = fopen(VTOY_LOG_FILE, "a+");
|
fp = fopen(g_log_file, "a+");
|
||||||
if (fp)
|
if (fp)
|
||||||
{
|
{
|
||||||
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
|
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
|
||||||
@@ -129,11 +131,11 @@ void ventoy_syslog(int level, const char *Fmt, ...)
|
|||||||
va_end(arg);
|
va_end(arg);
|
||||||
|
|
||||||
pthread_mutex_lock(&g_log_mutex);
|
pthread_mutex_lock(&g_log_mutex);
|
||||||
fp = fopen(VTOY_LOG_FILE, "a+");
|
fp = fopen(g_log_file, "a+");
|
||||||
if (fp)
|
if (fp)
|
||||||
{
|
{
|
||||||
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
|
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
|
||||||
ttm.tm_year, ttm.tm_mon, ttm.tm_mday,
|
ttm.tm_year + 1900, ttm.tm_mon, ttm.tm_mday,
|
||||||
ttm.tm_hour, ttm.tm_min, ttm.tm_sec,
|
ttm.tm_hour, ttm.tm_min, ttm.tm_sec,
|
||||||
log);
|
log);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
@@ -20,6 +20,9 @@
|
|||||||
#ifndef __VENTOY_UTIL_H__
|
#ifndef __VENTOY_UTIL_H__
|
||||||
#define __VENTOY_UTIL_H__
|
#define __VENTOY_UTIL_H__
|
||||||
|
|
||||||
|
extern char g_log_file[PATH_MAX];
|
||||||
|
extern char g_ini_file[PATH_MAX];
|
||||||
|
|
||||||
#define check_free(p) if (p) free(p)
|
#define check_free(p) if (p) free(p)
|
||||||
#define vtoy_safe_close_fd(fd) \
|
#define vtoy_safe_close_fd(fd) \
|
||||||
{\
|
{\
|
||||||
|
300
LinuxGUI/Ventoy2Disk/GTK/refresh_icon_data.c
Normal file
300
LinuxGUI/Ventoy2Disk/GTK/refresh_icon_data.c
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* refresh_icon_data.c
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
static unsigned char refresh_icon_hexData[4286] = {
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x20, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xA8, 0x10,
|
||||||
|
0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x27,
|
||||||
|
0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE,
|
||||||
|
0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE,
|
||||||
|
0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE,
|
||||||
|
0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE,
|
||||||
|
0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0xD9, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB2, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBE,
|
||||||
|
0x31, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xB7, 0xCA, 0x59, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC0, 0xD1,
|
||||||
|
0x6E, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xAF, 0xC5, 0x48, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xD4, 0xE0,
|
||||||
|
0x9D, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFD, 0xFE,
|
||||||
|
0xFB, 0xFF, 0xFB, 0xFC, 0xF5, 0xFF, 0xF2, 0xF6, 0xE1, 0xFF, 0xDD, 0xE6, 0xB1, 0xFF, 0xBD, 0xCF,
|
||||||
|
0x67, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB2, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA8, 0xC0, 0x37, 0xFF, 0xCB, 0xD9, 0x87, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFB,
|
||||||
|
0xF4, 0xFF, 0xD9, 0xE4, 0xA8, 0xFF, 0xAF, 0xC4, 0x46, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0,
|
||||||
|
0x38, 0xFF, 0xD5, 0xE0, 0x9D, 0xFF, 0xFD, 0xFE, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE,
|
||||||
|
0xFD, 0xFF, 0xEE, 0xF3, 0xD9, 0xFF, 0xD9, 0xE3, 0xA8, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xCA, 0xD8,
|
||||||
|
0x85, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xE6, 0xEC, 0xC4, 0xFF, 0xFA, 0xFB, 0xF3, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xED, 0xC7, 0xFF, 0xB1, 0xC6, 0x4C, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xCD, 0xDB,
|
||||||
|
0x8C, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xF7, 0xE7, 0xFF, 0xCB, 0xD9,
|
||||||
|
0x87, 0xFF, 0xAE, 0xC3, 0x43, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xBD, 0xCF, 0x66, 0xFF, 0xE8, 0xEE,
|
||||||
|
0xC9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xAD, 0xC3,
|
||||||
|
0x41, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBC, 0x2D, 0xFF, 0xB8, 0xCB, 0x5C, 0xFF, 0xF6, 0xF9,
|
||||||
|
0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xF5, 0xDF, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAE, 0xC4,
|
||||||
|
0x44, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xD6,
|
||||||
|
0x7E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA9, 0xC0,
|
||||||
|
0x39, 0xFF, 0xC8, 0xD7, 0x80, 0xFF, 0xD0, 0xDC, 0x92, 0xFF, 0xE7, 0xEE, 0xC8, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xB0, 0xC5,
|
||||||
|
0x49, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB0, 0xC6, 0x4A, 0xFF, 0xE3, 0xEA, 0xBE, 0xFF, 0xEA, 0xEF, 0xCE, 0xFF, 0xB8, 0xCB,
|
||||||
|
0x5C, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA8, 0xC0,
|
||||||
|
0x37, 0xFF, 0xE0, 0xE8, 0xB8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF6, 0xE3, 0xFF, 0xB3, 0xC7,
|
||||||
|
0x4F, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB6, 0xCA, 0x58, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xC9, 0xD8, 0x84, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xFE, 0xFE, 0xFD, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xBB, 0xCE, 0x63, 0xFF, 0xA7, 0xBF,
|
||||||
|
0x35, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xF7, 0xF9, 0xEC, 0xFF, 0xBD, 0xCF,
|
||||||
|
0x67, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xBB, 0xCD, 0x63, 0xFF, 0xF6, 0xF8,
|
||||||
|
0xEA, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xEE,
|
||||||
|
0xC9, 0xFF, 0xAC, 0xC2, 0x40, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xBA, 0xCD,
|
||||||
|
0x60, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1,
|
||||||
|
0x3A, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFE, 0xFF, 0xCF, 0xDC, 0x90, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xC9, 0xD8,
|
||||||
|
0x84, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xB8, 0xCB, 0x5B, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0,
|
||||||
|
0x38, 0xFF, 0xA8, 0xBF, 0x37, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB2, 0xC7, 0x4F, 0xFF, 0xF2, 0xF6,
|
||||||
|
0xE2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xE4, 0xEB,
|
||||||
|
0xC1, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xCA, 0xD8,
|
||||||
|
0x85, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xEF,
|
||||||
|
0xCD, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xC7, 0xD6, 0x7E, 0xFF, 0xA9, 0xC0, 0x39, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xC6, 0xD6, 0x7C, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xB5, 0xC9,
|
||||||
|
0x55, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xBC, 0xCE,
|
||||||
|
0x65, 0xFF, 0xA4, 0xBC, 0x2C, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAE, 0xC4, 0x44, 0xFF, 0xE6, 0xED,
|
||||||
|
0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xB9, 0xCC,
|
||||||
|
0x5E, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xC5, 0xD5, 0x79, 0xFF, 0xF1, 0xF5,
|
||||||
|
0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xA7, 0xBE,
|
||||||
|
0x33, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB3, 0xC8,
|
||||||
|
0x51, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA,
|
||||||
|
0xEE, 0xFF, 0xE1, 0xE9, 0xBA, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xC4, 0xD4, 0x78, 0xFF, 0xC6, 0xD6,
|
||||||
|
0x7C, 0xFF, 0xD3, 0xDF, 0x9A, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFC, 0xFD, 0xF9, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xDB, 0xE4, 0xAB, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB3, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB1, 0xC6, 0x4B, 0xFF, 0xDD, 0xE6, 0xB2, 0xFF, 0xFC, 0xFD, 0xF8, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA,
|
||||||
|
0xEE, 0xFF, 0xD1, 0xDE, 0x96, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xC1, 0xD2, 0x71, 0xFF, 0xE2, 0xEA,
|
||||||
|
0xBC, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF,
|
||||||
|
0xFE, 0xFF, 0xFB, 0xFC, 0xF7, 0xFF, 0xF2, 0xF5, 0xE1, 0xFF, 0xDB, 0xE5, 0xAC, 0xFF, 0xB9, 0xCC,
|
||||||
|
0x5F, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA8, 0xBF,
|
||||||
|
0x36, 0xFF, 0xB3, 0xC7, 0x4F, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC5, 0xD5, 0x7A, 0xFF, 0xC4, 0xD4,
|
||||||
|
0x78, 0xFF, 0xBC, 0xCE, 0x64, 0xFF, 0xB0, 0xC5, 0x48, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB3, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE,
|
||||||
|
0x32, 0xC0, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE,
|
||||||
|
0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE,
|
||||||
|
0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE,
|
||||||
|
0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD, 0x31, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80,
|
||||||
|
0x01, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00,
|
||||||
|
0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
|
||||||
|
0x00, 0x01, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00,
|
||||||
|
0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x01, 0xFF
|
||||||
|
};
|
||||||
|
|
||||||
|
void *get_refresh_icon_raw_data(int *len)
|
||||||
|
{
|
||||||
|
*len = (int)sizeof(refresh_icon_hexData);
|
||||||
|
return refresh_icon_hexData;
|
||||||
|
}
|
||||||
|
|
91
LinuxGUI/Ventoy2Disk/GTK/secure_icon_data.c
Normal file
91
LinuxGUI/Ventoy2Disk/GTK/secure_icon_data.c
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* secure_icon_data.c
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
static unsigned char secure_icon_hexData[958] = {
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xA8, 0x03,
|
||||||
|
0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x46, 0x5C,
|
||||||
|
0x00, 0x00, 0x46, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C,
|
||||||
|
0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C,
|
||||||
|
0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C,
|
||||||
|
0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C,
|
||||||
|
0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C,
|
||||||
|
0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C,
|
||||||
|
0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C,
|
||||||
|
0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x6C, 0xC4, 0xFF, 0x00, 0x7C,
|
||||||
|
0xDF, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x7D,
|
||||||
|
0xE1, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0x77, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0x77, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0xD4, 0x01, 0x8B, 0xF9, 0xF7, 0x03, 0x89,
|
||||||
|
0xF3, 0xFF, 0x01, 0x8B, 0xF8, 0xF8, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C,
|
||||||
|
0xFB, 0xF4, 0x01, 0x8B, 0xF8, 0xF8, 0x03, 0x89, 0xF3, 0xFF, 0x01, 0x8B, 0xF9, 0xF7, 0x00, 0x8C,
|
||||||
|
0xFB, 0xD4, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x93, 0xFF, 0x1E, 0x1D, 0x6B,
|
||||||
|
0xA9, 0x6B, 0x32, 0x54, 0x6F, 0xF6, 0x22, 0x65, 0x9A, 0x7D, 0x00, 0x90, 0xFF, 0x39, 0x00, 0x8C,
|
||||||
|
0xFB, 0x3C, 0x00, 0x90, 0xFF, 0x39, 0x22, 0x65, 0x9A, 0x7D, 0x32, 0x54, 0x6F, 0xF6, 0x1D, 0x6B,
|
||||||
|
0xA9, 0x6B, 0x00, 0x93, 0xFF, 0x1E, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x2A, 0x5D,
|
||||||
|
0x85, 0x00, 0x46, 0x3D, 0x36, 0x3A, 0x43, 0x41, 0x3F, 0xF3, 0x45, 0x3F, 0x3A, 0x58, 0x26, 0x62,
|
||||||
|
0x91, 0x00, 0x00, 0x8D, 0xFD, 0x00, 0x26, 0x62, 0x91, 0x00, 0x45, 0x3F, 0x3A, 0x58, 0x43, 0x41,
|
||||||
|
0x3F, 0xF3, 0x46, 0x3D, 0x36, 0x3A, 0x2A, 0x5D, 0x85, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42,
|
||||||
|
0x42, 0x94, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42,
|
||||||
|
0x42, 0x94, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42,
|
||||||
|
0x42, 0x96, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x8E, 0x42, 0x42, 0x42, 0x53, 0x42, 0x42,
|
||||||
|
0x42, 0x8E, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42,
|
||||||
|
0x42, 0xF3, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42,
|
||||||
|
0x42, 0x31, 0x42, 0x42, 0x42, 0x4B, 0x42, 0x42, 0x42, 0x31, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
|
||||||
|
0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
void *get_secure_icon_raw_data(int *len)
|
||||||
|
{
|
||||||
|
*len = (int)sizeof(secure_icon_hexData);
|
||||||
|
return secure_icon_hexData;
|
||||||
|
}
|
1119
LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c
Normal file
1119
LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c
Normal file
File diff suppressed because it is too large
Load Diff
70
LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h
Normal file
70
LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* ventoy_gtk.h
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef __VENTOY_GTK_H__
|
||||||
|
#define __VENTOY_GTK_H__
|
||||||
|
|
||||||
|
int ventoy_disk_init(void);
|
||||||
|
void ventoy_disk_exit(void);
|
||||||
|
int ventoy_http_init(void);
|
||||||
|
void ventoy_http_exit(void);
|
||||||
|
int ventoy_log_init(void);
|
||||||
|
void ventoy_log_exit(void);
|
||||||
|
void *get_refresh_icon_raw_data(int *len);
|
||||||
|
void *get_secure_icon_raw_data(int *len);
|
||||||
|
void *get_window_icon_raw_data(int *len);
|
||||||
|
int ventoy_func_handler(const char *jsonstr, char *jsonbuf, int buflen);
|
||||||
|
const char * ventoy_code_get_cur_language(void);
|
||||||
|
int ventoy_code_get_cur_part_style(void);
|
||||||
|
void ventoy_code_set_cur_part_style(int style);
|
||||||
|
int ventoy_code_get_cur_show_all(void);
|
||||||
|
void ventoy_code_set_cur_show_all(int show_all);
|
||||||
|
void ventoy_code_set_cur_language(const char *lang);
|
||||||
|
void ventoy_code_save_cfg(void);
|
||||||
|
void on_init_window(GtkBuilder *pBuilder);
|
||||||
|
int on_exit_window(GtkWidget *widget, gpointer data) ;
|
||||||
|
void ventoy_code_refresh_device(void);
|
||||||
|
int ventoy_code_is_busy(void);
|
||||||
|
int ventoy_code_get_percent(void);
|
||||||
|
int ventoy_code_get_result(void);
|
||||||
|
int msgbox(GtkMessageType type, GtkButtonsType buttons, const char *strid);
|
||||||
|
|
||||||
|
#define VTOY_VER_FMT "<span weight='bold' foreground='red' size='xx-large'>%s</span>"
|
||||||
|
|
||||||
|
#define LANG_LABEL_TEXT(id, str) \
|
||||||
|
gtk_label_set_text(BUILDER_ITEM(GtkLabel, id), vtoy_json_get_string_ex(node->pstChild, str))
|
||||||
|
|
||||||
|
#define LANG_BUTTON_TEXT(id, str) \
|
||||||
|
gtk_button_set_label(BUILDER_ITEM(GtkButton, id), vtoy_json_get_string_ex(node->pstChild, str))
|
||||||
|
|
||||||
|
#define LANG_MENU_ITEM_TEXT(id, str) \
|
||||||
|
gtk_menu_item_set_label(BUILDER_ITEM(GtkMenuItem, id), vtoy_json_get_string_ex(node->pstChild, str))
|
||||||
|
|
||||||
|
#define LANG_CHKBTN_TEXT(id, str) \
|
||||||
|
gtk_check_button_set_label(BUILDER_ITEM(GtkCheckButton, id), vtoy_json_get_string_ex(node->pstChild, str))
|
||||||
|
|
||||||
|
#define BUILDER_ITEM(type, id) (type *)gtk_builder_get_object(g_pXmlBuilder, id)
|
||||||
|
|
||||||
|
#define SIGNAL(id, act, func) \
|
||||||
|
g_signal_connect(gtk_builder_get_object(g_pXmlBuilder, id), act, G_CALLBACK(func), NULL)
|
||||||
|
|
||||||
|
#define GTK_MSG_ITERATION() while (gtk_events_pending ()) gtk_main_iteration()
|
||||||
|
|
||||||
|
#endif /* __VENTOY_GTK_H__ */
|
||||||
|
|
7633
LinuxGUI/Ventoy2Disk/GTK/window_icon_data.c
Normal file
7633
LinuxGUI/Ventoy2Disk/GTK/window_icon_data.c
Normal file
File diff suppressed because it is too large
Load Diff
139
LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro
Normal file
139
LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
QT += core gui
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
CONFIG += c++11
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any Qt feature that has been marked deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
Core/ventoy_crc32.c \
|
||||||
|
Core/ventoy_disk.c \
|
||||||
|
Core/ventoy_json.c \
|
||||||
|
Core/ventoy_log.c \
|
||||||
|
Core/ventoy_md5.c \
|
||||||
|
Core/ventoy_util.c \
|
||||||
|
Lib/exfat/src/libexfat/cluster.c \
|
||||||
|
Lib/exfat/src/libexfat/io.c \
|
||||||
|
Lib/exfat/src/libexfat/lookup.c \
|
||||||
|
Lib/exfat/src/libexfat/mount.c \
|
||||||
|
Lib/exfat/src/libexfat/node.c \
|
||||||
|
Lib/exfat/src/libexfat/repair.c \
|
||||||
|
Lib/exfat/src/libexfat/time.c \
|
||||||
|
Lib/exfat/src/libexfat/utf.c \
|
||||||
|
Lib/exfat/src/libexfat/utils.c \
|
||||||
|
Lib/exfat/src/mkfs/cbm.c \
|
||||||
|
Lib/exfat/src/mkfs/fat.c \
|
||||||
|
Lib/exfat/src/mkfs/mkexfat.c \
|
||||||
|
Lib/exfat/src/mkfs/mkexfat_main.c \
|
||||||
|
Lib/exfat/src/mkfs/rootdir.c \
|
||||||
|
Lib/exfat/src/mkfs/uct.c \
|
||||||
|
Lib/exfat/src/mkfs/uctc.c \
|
||||||
|
Lib/exfat/src/mkfs/vbr.c \
|
||||||
|
Lib/fat_io_lib/fat_access.c \
|
||||||
|
Lib/fat_io_lib/fat_cache.c \
|
||||||
|
Lib/fat_io_lib/fat_filelib.c \
|
||||||
|
Lib/fat_io_lib/fat_format.c \
|
||||||
|
Lib/fat_io_lib/fat_misc.c \
|
||||||
|
Lib/fat_io_lib/fat_string.c \
|
||||||
|
Lib/fat_io_lib/fat_table.c \
|
||||||
|
Lib/fat_io_lib/fat_write.c \
|
||||||
|
Lib/xz-embedded/linux/lib/decompress_unxz.c \
|
||||||
|
QT/refresh_icon_data.c \
|
||||||
|
QT/secure_icon_data.c \
|
||||||
|
QT/ventoy_qt_stub.c \
|
||||||
|
Web/ventoy_http.c \
|
||||||
|
main.cpp \
|
||||||
|
partcfgdialog.cpp \
|
||||||
|
ventoy2diskwindow.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
Core/ventoy_define.h \
|
||||||
|
Core/ventoy_disk.h \
|
||||||
|
Core/ventoy_json.h \
|
||||||
|
Core/ventoy_util.h \
|
||||||
|
Include/Ventoy2Disk.h \
|
||||||
|
Lib/exfat/src/libexfat/byteorder.h \
|
||||||
|
Lib/exfat/src/libexfat/compiler.h \
|
||||||
|
Lib/exfat/src/libexfat/config.h \
|
||||||
|
Lib/exfat/src/libexfat/exfat.h \
|
||||||
|
Lib/exfat/src/libexfat/exfatfs.h \
|
||||||
|
Lib/exfat/src/libexfat/platform.h \
|
||||||
|
Lib/exfat/src/mkfs/cbm.h \
|
||||||
|
Lib/exfat/src/mkfs/fat.h \
|
||||||
|
Lib/exfat/src/mkfs/mkexfat.h \
|
||||||
|
Lib/exfat/src/mkfs/rootdir.h \
|
||||||
|
Lib/exfat/src/mkfs/uct.h \
|
||||||
|
Lib/exfat/src/mkfs/uctc.h \
|
||||||
|
Lib/exfat/src/mkfs/vbr.h \
|
||||||
|
Lib/fat_io_lib/fat_access.h \
|
||||||
|
Lib/fat_io_lib/fat_cache.h \
|
||||||
|
Lib/fat_io_lib/fat_defs.h \
|
||||||
|
Lib/fat_io_lib/fat_filelib.h \
|
||||||
|
Lib/fat_io_lib/fat_format.h \
|
||||||
|
Lib/fat_io_lib/fat_list.h \
|
||||||
|
Lib/fat_io_lib/fat_misc.h \
|
||||||
|
Lib/fat_io_lib/fat_opts.h \
|
||||||
|
Lib/fat_io_lib/fat_string.h \
|
||||||
|
Lib/fat_io_lib/fat_table.h \
|
||||||
|
Lib/fat_io_lib/fat_types.h \
|
||||||
|
Lib/fat_io_lib/fat_write.h \
|
||||||
|
Lib/libhttp/include/civetweb.h \
|
||||||
|
Lib/libhttp/include/handle_form.inl \
|
||||||
|
Lib/libhttp/include/md5.inl \
|
||||||
|
Lib/libhttp/include/mod_duktape.inl \
|
||||||
|
Lib/libhttp/include/mod_lua.inl \
|
||||||
|
Lib/libhttp/include/timer.inl \
|
||||||
|
QT/ventoy_qt.h \
|
||||||
|
Web/ventoy_http.h \
|
||||||
|
partcfgdialog.h \
|
||||||
|
ventoy2diskwindow.h
|
||||||
|
|
||||||
|
FORMS += \
|
||||||
|
partcfgdialog.ui \
|
||||||
|
ventoy2diskwindow.ui
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
|
DISTFILES += \
|
||||||
|
Lib/fat_io_lib/API.txt \
|
||||||
|
Lib/fat_io_lib/COPYRIGHT.txt \
|
||||||
|
Lib/fat_io_lib/Configuration.txt \
|
||||||
|
Lib/fat_io_lib/History.txt \
|
||||||
|
Lib/fat_io_lib/License.txt \
|
||||||
|
Lib/fat_io_lib/Media Access API.txt \
|
||||||
|
Lib/fat_io_lib/version.txt
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Core
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Web
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/QT
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Include
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/libhttp/include
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/fat_io_lib/include
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat
|
||||||
|
INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/fat_io_lib
|
||||||
|
#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/include
|
||||||
|
#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/arch/x86/include
|
||||||
|
#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/arch/x86/include/generated
|
||||||
|
|
||||||
|
|
||||||
|
DEFINES += STATIC=static
|
||||||
|
DEFINES += INIT=
|
||||||
|
|
||||||
|
|
338
LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user
Normal file
338
LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user
Normal file
@@ -0,0 +1,338 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorProject>
|
||||||
|
<!-- Written by QtCreator 4.12.2, 2021-09-10T13:54:00. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>EnvironmentId</variable>
|
||||||
|
<value type="QByteArray">{666f325e-a9c7-45d6-a820-626289f99bab}</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
|
<value type="int">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||||
|
<value type="QString" key="language">Cpp</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||||
|
<value type="QString" key="language">QmlJS</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
|
||||||
|
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
|
||||||
|
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.Questionable</value>
|
||||||
|
<valuemap type="QVariantMap" key="ClangTools">
|
||||||
|
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||||
|
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||||
|
<value type="int" key="ClangTools.ParallelJobs">2</value>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||||
|
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.9 GCC 64bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.9 GCC 64bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5129.gcc_64_kit</value>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
<value type="bool">true</value>
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">2</value>
|
||||||
|
<value type="int" key="SeparateDebugInfo">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="bool">true</value>
|
||||||
|
<value type="int" key="EnableQmlDebugging">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Release</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
<value type="int" key="SeparateDebugInfo">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
|
<value type="bool">true</value>
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Profile</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
<value type="int" key="SeparateDebugInfo">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
|
||||||
|
<value type="QString">cpu-cycles</value>
|
||||||
|
</valuelist>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
|
||||||
|
<value type="int" key="Analyzer.Perf.Frequency">250</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
|
||||||
|
<value type="QString">-e</value>
|
||||||
|
<value type="QString">cpu-cycles</value>
|
||||||
|
<value type="QString">--call-graph</value>
|
||||||
|
<value type="QString">dwarf,4096</value>
|
||||||
|
<value type="QString">-F</value>
|
||||||
|
<value type="QString">250</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
|
||||||
|
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
|
||||||
|
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||||
|
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||||
|
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||||
|
<value type="int">0</value>
|
||||||
|
<value type="int">1</value>
|
||||||
|
<value type="int">2</value>
|
||||||
|
<value type="int">3</value>
|
||||||
|
<value type="int">4</value>
|
||||||
|
<value type="int">5</value>
|
||||||
|
<value type="int">6</value>
|
||||||
|
<value type="int">7</value>
|
||||||
|
<value type="int">8</value>
|
||||||
|
<value type="int">9</value>
|
||||||
|
<value type="int">10</value>
|
||||||
|
<value type="int">11</value>
|
||||||
|
<value type="int">12</value>
|
||||||
|
<value type="int">13</value>
|
||||||
|
<value type="int">14</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/panda/Ventoy2Disk/Ventoy2Disk.pro</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/panda/Ventoy2Disk/Ventoy2Disk.pro</value>
|
||||||
|
<value type="QString" key="RunConfiguration.Arguments"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
|
||||||
|
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory">/home/panda/Desktop/ventoy-1.0.52-linux/ventoy-1.0.52</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||||
|
<value type="int">1</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
1760
LinuxGUI/Ventoy2Disk/QT/build/Makefile
Normal file
1760
LinuxGUI/Ventoy2Disk/QT/build/Makefile
Normal file
File diff suppressed because it is too large
Load Diff
124
LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp
Normal file
124
LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
** Meta object code from reading C++ file 'partcfgdialog.h'
|
||||||
|
**
|
||||||
|
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.0)
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost!
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "../partcfgdialog.h"
|
||||||
|
#include <QtCore/qbytearray.h>
|
||||||
|
#include <QtCore/qmetatype.h>
|
||||||
|
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||||
|
#error "The header file 'partcfgdialog.h' doesn't include <QObject>."
|
||||||
|
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||||
|
#error "This file was generated using the moc from 5.9.0. It"
|
||||||
|
#error "cannot be used with the include files from this version of Qt."
|
||||||
|
#error "(The moc has changed too much.)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QT_BEGIN_MOC_NAMESPACE
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_DEPRECATED
|
||||||
|
struct qt_meta_stringdata_PartCfgDialog_t {
|
||||||
|
QByteArrayData data[6];
|
||||||
|
char stringdata0[97];
|
||||||
|
};
|
||||||
|
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||||
|
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||||
|
qptrdiff(offsetof(qt_meta_stringdata_PartCfgDialog_t, stringdata0) + ofs \
|
||||||
|
- idx * sizeof(QByteArrayData)) \
|
||||||
|
)
|
||||||
|
static const qt_meta_stringdata_PartCfgDialog_t qt_meta_stringdata_PartCfgDialog = {
|
||||||
|
{
|
||||||
|
QT_MOC_LITERAL(0, 0, 13), // "PartCfgDialog"
|
||||||
|
QT_MOC_LITERAL(1, 14, 23), // "on_pushButtonOK_clicked"
|
||||||
|
QT_MOC_LITERAL(2, 38, 0), // ""
|
||||||
|
QT_MOC_LITERAL(3, 39, 27), // "on_pushButtonCancel_clicked"
|
||||||
|
QT_MOC_LITERAL(4, 67, 24), // "on_checkBox_stateChanged"
|
||||||
|
QT_MOC_LITERAL(5, 92, 4) // "arg1"
|
||||||
|
|
||||||
|
},
|
||||||
|
"PartCfgDialog\0on_pushButtonOK_clicked\0"
|
||||||
|
"\0on_pushButtonCancel_clicked\0"
|
||||||
|
"on_checkBox_stateChanged\0arg1"
|
||||||
|
};
|
||||||
|
#undef QT_MOC_LITERAL
|
||||||
|
|
||||||
|
static const uint qt_meta_data_PartCfgDialog[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
7, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
3, 14, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
0, // signalCount
|
||||||
|
|
||||||
|
// slots: name, argc, parameters, tag, flags
|
||||||
|
1, 0, 29, 2, 0x08 /* Private */,
|
||||||
|
3, 0, 30, 2, 0x08 /* Private */,
|
||||||
|
4, 1, 31, 2, 0x08 /* Private */,
|
||||||
|
|
||||||
|
// slots: parameters
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void, QMetaType::Int, 5,
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
void PartCfgDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
PartCfgDialog *_t = static_cast<PartCfgDialog *>(_o);
|
||||||
|
Q_UNUSED(_t)
|
||||||
|
switch (_id) {
|
||||||
|
case 0: _t->on_pushButtonOK_clicked(); break;
|
||||||
|
case 1: _t->on_pushButtonCancel_clicked(); break;
|
||||||
|
case 2: _t->on_checkBox_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const QMetaObject PartCfgDialog::staticMetaObject = {
|
||||||
|
{ &QDialog::staticMetaObject, qt_meta_stringdata_PartCfgDialog.data,
|
||||||
|
qt_meta_data_PartCfgDialog, qt_static_metacall, nullptr, nullptr}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const QMetaObject *PartCfgDialog::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *PartCfgDialog::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return nullptr;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_PartCfgDialog.stringdata0))
|
||||||
|
return static_cast<void*>(const_cast< PartCfgDialog*>(this));
|
||||||
|
return QDialog::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int PartCfgDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QDialog::qt_metacall(_c, _id, _a);
|
||||||
|
if (_id < 0)
|
||||||
|
return _id;
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
if (_id < 3)
|
||||||
|
qt_static_metacall(this, _c, _id, _a);
|
||||||
|
_id -= 3;
|
||||||
|
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||||
|
if (_id < 3)
|
||||||
|
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||||
|
_id -= 3;
|
||||||
|
}
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
QT_WARNING_POP
|
||||||
|
QT_END_MOC_NAMESPACE
|
375
LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h
Normal file
375
LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h
Normal file
@@ -0,0 +1,375 @@
|
|||||||
|
#define __DBL_MIN_EXP__ (-1021)
|
||||||
|
#define __FLT32X_MAX_EXP__ 1024
|
||||||
|
#define __cpp_attributes 200809
|
||||||
|
#define __UINT_LEAST16_MAX__ 0xffff
|
||||||
|
#define __ATOMIC_ACQUIRE 2
|
||||||
|
#define __FLT128_MAX_10_EXP__ 4932
|
||||||
|
#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
|
||||||
|
#define __GCC_IEC_559_COMPLEX 2
|
||||||
|
#define __UINT_LEAST8_TYPE__ unsigned char
|
||||||
|
#define __SIZEOF_FLOAT80__ 16
|
||||||
|
#define __INTMAX_C(c) c ## L
|
||||||
|
#define __CHAR_BIT__ 8
|
||||||
|
#define __UINT8_MAX__ 0xff
|
||||||
|
#define __WINT_MAX__ 0xffffffffU
|
||||||
|
#define __FLT32_MIN_EXP__ (-125)
|
||||||
|
#define __cpp_static_assert 200410
|
||||||
|
#define __ORDER_LITTLE_ENDIAN__ 1234
|
||||||
|
#define __SIZE_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __WCHAR_MAX__ 0x7fffffff
|
||||||
|
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
|
||||||
|
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
|
||||||
|
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
|
||||||
|
#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
|
||||||
|
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
|
||||||
|
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
|
||||||
|
#define __GCC_IEC_559 2
|
||||||
|
#define __FLT32X_DECIMAL_DIG__ 17
|
||||||
|
#define __FLT_EVAL_METHOD__ 0
|
||||||
|
#define __unix__ 1
|
||||||
|
#define __cpp_binary_literals 201304
|
||||||
|
#define __FLT64_DECIMAL_DIG__ 17
|
||||||
|
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
|
||||||
|
#define __x86_64 1
|
||||||
|
#define __cpp_variadic_templates 200704
|
||||||
|
#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __SIG_ATOMIC_TYPE__ int
|
||||||
|
#define __DBL_MIN_10_EXP__ (-307)
|
||||||
|
#define __FINITE_MATH_ONLY__ 0
|
||||||
|
#define __GNUC_PATCHLEVEL__ 0
|
||||||
|
#define __FLT32_HAS_DENORM__ 1
|
||||||
|
#define __UINT_FAST8_MAX__ 0xff
|
||||||
|
#define __has_include(STR) __has_include__(STR)
|
||||||
|
#define __DEC64_MAX_EXP__ 385
|
||||||
|
#define __INT8_C(c) c
|
||||||
|
#define __INT_LEAST8_WIDTH__ 8
|
||||||
|
#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __SHRT_MAX__ 0x7fff
|
||||||
|
#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
|
||||||
|
#define __FLT64X_MAX_10_EXP__ 4932
|
||||||
|
#define __UINT_LEAST8_MAX__ 0xff
|
||||||
|
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
|
||||||
|
#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
|
||||||
|
#define __UINTMAX_TYPE__ long unsigned int
|
||||||
|
#define __linux 1
|
||||||
|
#define __DEC32_EPSILON__ 1E-6DF
|
||||||
|
#define __FLT_EVAL_METHOD_TS_18661_3__ 0
|
||||||
|
#define __OPTIMIZE__ 1
|
||||||
|
#define __unix 1
|
||||||
|
#define __UINT32_MAX__ 0xffffffffU
|
||||||
|
#define __GXX_EXPERIMENTAL_CXX0X__ 1
|
||||||
|
#define __LDBL_MAX_EXP__ 16384
|
||||||
|
#define __FLT128_MIN_EXP__ (-16381)
|
||||||
|
#define __WINT_MIN__ 0U
|
||||||
|
#define __linux__ 1
|
||||||
|
#define __FLT128_MIN_10_EXP__ (-4931)
|
||||||
|
#define __INT_LEAST16_WIDTH__ 16
|
||||||
|
#define __SCHAR_MAX__ 0x7f
|
||||||
|
#define __FLT128_MANT_DIG__ 113
|
||||||
|
#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
|
||||||
|
#define __INT64_C(c) c ## L
|
||||||
|
#define __DBL_DIG__ 15
|
||||||
|
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
|
||||||
|
#define __FLT64X_MANT_DIG__ 64
|
||||||
|
#define __SIZEOF_INT__ 4
|
||||||
|
#define __SIZEOF_POINTER__ 8
|
||||||
|
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
|
||||||
|
#define __USER_LABEL_PREFIX__
|
||||||
|
#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
|
||||||
|
#define __STDC_HOSTED__ 1
|
||||||
|
#define __LDBL_HAS_INFINITY__ 1
|
||||||
|
#define __FLT32_DIG__ 6
|
||||||
|
#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
|
||||||
|
#define __GXX_WEAK__ 1
|
||||||
|
#define __SHRT_WIDTH__ 16
|
||||||
|
#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
|
||||||
|
#define __DEC32_MAX__ 9.999999E96DF
|
||||||
|
#define __cpp_threadsafe_static_init 200806
|
||||||
|
#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
|
||||||
|
#define __FLT32X_HAS_INFINITY__ 1
|
||||||
|
#define __INT32_MAX__ 0x7fffffff
|
||||||
|
#define __INT_WIDTH__ 32
|
||||||
|
#define __SIZEOF_LONG__ 8
|
||||||
|
#define __STDC_IEC_559__ 1
|
||||||
|
#define __STDC_ISO_10646__ 201706L
|
||||||
|
#define __UINT16_C(c) c
|
||||||
|
#define __PTRDIFF_WIDTH__ 64
|
||||||
|
#define __DECIMAL_DIG__ 21
|
||||||
|
#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
|
||||||
|
#define __gnu_linux__ 1
|
||||||
|
#define __INTMAX_WIDTH__ 64
|
||||||
|
#define __FLT64_MIN_EXP__ (-1021)
|
||||||
|
#define __has_include_next(STR) __has_include_next__(STR)
|
||||||
|
#define __FLT64X_MIN_10_EXP__ (-4931)
|
||||||
|
#define __LDBL_HAS_QUIET_NAN__ 1
|
||||||
|
#define __FLT64_MANT_DIG__ 53
|
||||||
|
#define __GNUC__ 8
|
||||||
|
#define __GXX_RTTI 1
|
||||||
|
#define __MMX__ 1
|
||||||
|
#define __cpp_delegating_constructors 200604
|
||||||
|
#define __FLT_HAS_DENORM__ 1
|
||||||
|
#define __SIZEOF_LONG_DOUBLE__ 16
|
||||||
|
#define __BIGGEST_ALIGNMENT__ 16
|
||||||
|
#define __STDC_UTF_16__ 1
|
||||||
|
#define __FLT64_MAX_10_EXP__ 308
|
||||||
|
#define __FLT32_HAS_INFINITY__ 1
|
||||||
|
#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
|
||||||
|
#define __cpp_raw_strings 200710
|
||||||
|
#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __DBL_HAS_INFINITY__ 1
|
||||||
|
#define __DEC32_MIN_EXP__ (-94)
|
||||||
|
#define __INTPTR_WIDTH__ 64
|
||||||
|
#define __FLT32X_HAS_DENORM__ 1
|
||||||
|
#define __INT_FAST16_TYPE__ long int
|
||||||
|
#define __LDBL_HAS_DENORM__ 1
|
||||||
|
#define __cplusplus 201103L
|
||||||
|
#define __cpp_ref_qualifiers 200710
|
||||||
|
#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
|
||||||
|
#define __INT_LEAST32_MAX__ 0x7fffffff
|
||||||
|
#define __DEC32_MIN__ 1E-95DF
|
||||||
|
#define __DEPRECATED 1
|
||||||
|
#define __cpp_rvalue_references 200610
|
||||||
|
#define __DBL_MAX_EXP__ 1024
|
||||||
|
#define __WCHAR_WIDTH__ 32
|
||||||
|
#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
|
||||||
|
#define __DEC128_EPSILON__ 1E-33DL
|
||||||
|
#define __SSE2_MATH__ 1
|
||||||
|
#define __ATOMIC_HLE_RELEASE 131072
|
||||||
|
#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __amd64 1
|
||||||
|
#define __ATOMIC_HLE_ACQUIRE 65536
|
||||||
|
#define __FLT32_HAS_QUIET_NAN__ 1
|
||||||
|
#define __GNUG__ 8
|
||||||
|
#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
|
||||||
|
#define __SIZEOF_SIZE_T__ 8
|
||||||
|
#define __cpp_rvalue_reference 200610
|
||||||
|
#define __cpp_nsdmi 200809
|
||||||
|
#define __FLT64X_MIN_EXP__ (-16381)
|
||||||
|
#define __SIZEOF_WINT_T__ 4
|
||||||
|
#define __LONG_LONG_WIDTH__ 64
|
||||||
|
#define __cpp_initializer_lists 200806
|
||||||
|
#define __FLT32_MAX_EXP__ 128
|
||||||
|
#define __cpp_hex_float 201603
|
||||||
|
#define __GCC_HAVE_DWARF2_CFI_ASM 1
|
||||||
|
#define __GXX_ABI_VERSION 1013
|
||||||
|
#define __FLT128_HAS_INFINITY__ 1
|
||||||
|
#define __FLT_MIN_EXP__ (-125)
|
||||||
|
#define __cpp_lambdas 200907
|
||||||
|
#define __FLT64X_HAS_QUIET_NAN__ 1
|
||||||
|
#define __INT_FAST64_TYPE__ long int
|
||||||
|
#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
|
||||||
|
#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
|
||||||
|
#define __LP64__ 1
|
||||||
|
#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
|
||||||
|
#define __DECIMAL_BID_FORMAT__ 1
|
||||||
|
#define __FLT64_MIN_10_EXP__ (-307)
|
||||||
|
#define __FLT64X_DECIMAL_DIG__ 21
|
||||||
|
#define __DEC128_MIN__ 1E-6143DL
|
||||||
|
#define __REGISTER_PREFIX__
|
||||||
|
#define __UINT16_MAX__ 0xffff
|
||||||
|
#define __DBL_HAS_DENORM__ 1
|
||||||
|
#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
|
||||||
|
#define __UINT8_TYPE__ unsigned char
|
||||||
|
#define __FLT_MANT_DIG__ 24
|
||||||
|
#define __LDBL_DECIMAL_DIG__ 21
|
||||||
|
#define __VERSION__ "8.3.0"
|
||||||
|
#define __UINT64_C(c) c ## UL
|
||||||
|
#define __cpp_unicode_characters 200704
|
||||||
|
#define _STDC_PREDEF_H 1
|
||||||
|
#define __GCC_ATOMIC_INT_LOCK_FREE 2
|
||||||
|
#define __FLT128_MAX_EXP__ 16384
|
||||||
|
#define __FLT32_MANT_DIG__ 24
|
||||||
|
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
|
||||||
|
#define __STDC_IEC_559_COMPLEX__ 1
|
||||||
|
#define __FLT128_HAS_DENORM__ 1
|
||||||
|
#define __FLT128_DIG__ 33
|
||||||
|
#define __SCHAR_WIDTH__ 8
|
||||||
|
#define __INT32_C(c) c
|
||||||
|
#define __DEC64_EPSILON__ 1E-15DD
|
||||||
|
#define __ORDER_PDP_ENDIAN__ 3412
|
||||||
|
#define __DEC128_MIN_EXP__ (-6142)
|
||||||
|
#define __FLT32_MAX_10_EXP__ 38
|
||||||
|
#define __INT_FAST32_TYPE__ long int
|
||||||
|
#define __UINT_LEAST16_TYPE__ short unsigned int
|
||||||
|
#define __FLT64X_HAS_INFINITY__ 1
|
||||||
|
#define unix 1
|
||||||
|
#define __INT16_MAX__ 0x7fff
|
||||||
|
#define __cpp_rtti 199711
|
||||||
|
#define __SIZE_TYPE__ long unsigned int
|
||||||
|
#define __UINT64_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __FLT64X_DIG__ 18
|
||||||
|
#define __INT8_TYPE__ signed char
|
||||||
|
#define __ELF__ 1
|
||||||
|
#define __GCC_ASM_FLAG_OUTPUTS__ 1
|
||||||
|
#define __FLT_RADIX__ 2
|
||||||
|
#define __INT_LEAST16_TYPE__ short int
|
||||||
|
#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
|
||||||
|
#define __UINTMAX_C(c) c ## UL
|
||||||
|
#define __GLIBCXX_BITSIZE_INT_N_0 128
|
||||||
|
#define __k8 1
|
||||||
|
#define __SIG_ATOMIC_MAX__ 0x7fffffff
|
||||||
|
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
|
||||||
|
#define __SIZEOF_PTRDIFF_T__ 8
|
||||||
|
#define __FLT32X_MANT_DIG__ 53
|
||||||
|
#define __x86_64__ 1
|
||||||
|
#define __FLT32X_MIN_EXP__ (-1021)
|
||||||
|
#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
|
||||||
|
#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __FLT64_DIG__ 15
|
||||||
|
#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __UINT_LEAST64_TYPE__ long unsigned int
|
||||||
|
#define __FLT_HAS_QUIET_NAN__ 1
|
||||||
|
#define __FLT_MAX_10_EXP__ 38
|
||||||
|
#define __LONG_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __FLT64X_HAS_DENORM__ 1
|
||||||
|
#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
|
||||||
|
#define __FLT_HAS_INFINITY__ 1
|
||||||
|
#define __cpp_unicode_literals 200710
|
||||||
|
#define __UINT_FAST16_TYPE__ long unsigned int
|
||||||
|
#define __DEC64_MAX__ 9.999999999999999E384DD
|
||||||
|
#define __INT_FAST32_WIDTH__ 64
|
||||||
|
#define __CHAR16_TYPE__ short unsigned int
|
||||||
|
#define __PRAGMA_REDEFINE_EXTNAME 1
|
||||||
|
#define __SIZE_WIDTH__ 64
|
||||||
|
#define __SEG_FS 1
|
||||||
|
#define __INT_LEAST16_MAX__ 0x7fff
|
||||||
|
#define __DEC64_MANT_DIG__ 16
|
||||||
|
#define __INT64_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __UINT_LEAST32_MAX__ 0xffffffffU
|
||||||
|
#define __SEG_GS 1
|
||||||
|
#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
|
||||||
|
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
|
||||||
|
#define __SIG_ATOMIC_WIDTH__ 32
|
||||||
|
#define __INT_LEAST64_TYPE__ long int
|
||||||
|
#define __INT16_TYPE__ short int
|
||||||
|
#define __INT_LEAST8_TYPE__ signed char
|
||||||
|
#define __DEC32_MAX_EXP__ 97
|
||||||
|
#define __INT_FAST8_MAX__ 0x7f
|
||||||
|
#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
|
||||||
|
#define __INTPTR_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define linux 1
|
||||||
|
#define __cpp_range_based_for 200907
|
||||||
|
#define __FLT64_HAS_QUIET_NAN__ 1
|
||||||
|
#define __FLT32_MIN_10_EXP__ (-37)
|
||||||
|
#define __SSE2__ 1
|
||||||
|
#define __EXCEPTIONS 1
|
||||||
|
#define __LDBL_MANT_DIG__ 64
|
||||||
|
#define __DBL_HAS_QUIET_NAN__ 1
|
||||||
|
#define __FLT64_HAS_INFINITY__ 1
|
||||||
|
#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
|
||||||
|
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
|
||||||
|
#define __code_model_small__ 1
|
||||||
|
#define __k8__ 1
|
||||||
|
#define __INTPTR_TYPE__ long int
|
||||||
|
#define __UINT16_TYPE__ short unsigned int
|
||||||
|
#define __WCHAR_TYPE__ int
|
||||||
|
#define __SIZEOF_FLOAT__ 4
|
||||||
|
#define __UINTPTR_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __INT_FAST64_WIDTH__ 64
|
||||||
|
#define __DEC64_MIN_EXP__ (-382)
|
||||||
|
#define __cpp_decltype 200707
|
||||||
|
#define __FLT32_DECIMAL_DIG__ 9
|
||||||
|
#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
|
||||||
|
#define __FLT_DIG__ 6
|
||||||
|
#define __FLT64X_MAX_EXP__ 16384
|
||||||
|
#define __UINT_FAST64_TYPE__ long unsigned int
|
||||||
|
#define __INT_MAX__ 0x7fffffff
|
||||||
|
#define __amd64__ 1
|
||||||
|
#define __INT64_TYPE__ long int
|
||||||
|
#define __FLT_MAX_EXP__ 128
|
||||||
|
#define __ORDER_BIG_ENDIAN__ 4321
|
||||||
|
#define __DBL_MANT_DIG__ 53
|
||||||
|
#define __cpp_inheriting_constructors 201511
|
||||||
|
#define __SIZEOF_FLOAT128__ 16
|
||||||
|
#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __DEC64_MIN__ 1E-383DD
|
||||||
|
#define __WINT_TYPE__ unsigned int
|
||||||
|
#define __UINT_LEAST32_TYPE__ unsigned int
|
||||||
|
#define __SIZEOF_SHORT__ 2
|
||||||
|
#define __SSE__ 1
|
||||||
|
#define __LDBL_MIN_EXP__ (-16381)
|
||||||
|
#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
|
||||||
|
#define __WINT_WIDTH__ 32
|
||||||
|
#define __INT_LEAST8_MAX__ 0x7f
|
||||||
|
#define __FLT32X_MAX_10_EXP__ 308
|
||||||
|
#define __SIZEOF_INT128__ 16
|
||||||
|
#define __LDBL_MAX_10_EXP__ 4932
|
||||||
|
#define __ATOMIC_RELAXED 0
|
||||||
|
#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
|
||||||
|
#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
|
||||||
|
#define _LP64 1
|
||||||
|
#define __UINT8_C(c) c
|
||||||
|
#define __FLT64_MAX_EXP__ 1024
|
||||||
|
#define __INT_LEAST32_TYPE__ int
|
||||||
|
#define __SIZEOF_WCHAR_T__ 4
|
||||||
|
#define __FLT128_HAS_QUIET_NAN__ 1
|
||||||
|
#define __INT_FAST8_TYPE__ signed char
|
||||||
|
#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
|
||||||
|
#define __GNUC_STDC_INLINE__ 1
|
||||||
|
#define __FLT64_HAS_DENORM__ 1
|
||||||
|
#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
|
||||||
|
#define __DBL_DECIMAL_DIG__ 17
|
||||||
|
#define __STDC_UTF_32__ 1
|
||||||
|
#define __INT_FAST8_WIDTH__ 8
|
||||||
|
#define __FXSR__ 1
|
||||||
|
#define __DEC_EVAL_METHOD__ 2
|
||||||
|
#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
|
||||||
|
#define __cpp_runtime_arrays 198712
|
||||||
|
#define __UINT64_TYPE__ long unsigned int
|
||||||
|
#define __UINT32_C(c) c ## U
|
||||||
|
#define __INTMAX_MAX__ 0x7fffffffffffffffL
|
||||||
|
#define __cpp_alias_templates 200704
|
||||||
|
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
|
||||||
|
#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
|
||||||
|
#define __INT8_MAX__ 0x7f
|
||||||
|
#define __LONG_WIDTH__ 64
|
||||||
|
#define __UINT_FAST32_TYPE__ long unsigned int
|
||||||
|
#define __CHAR32_TYPE__ unsigned int
|
||||||
|
#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
|
||||||
|
#define __cpp_constexpr 200704
|
||||||
|
#define __INT32_TYPE__ int
|
||||||
|
#define __SIZEOF_DOUBLE__ 8
|
||||||
|
#define __cpp_exceptions 199711
|
||||||
|
#define __FLT_MIN_10_EXP__ (-37)
|
||||||
|
#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
|
||||||
|
#define __INT_LEAST32_WIDTH__ 32
|
||||||
|
#define __INTMAX_TYPE__ long int
|
||||||
|
#define __DEC128_MAX_EXP__ 6145
|
||||||
|
#define __FLT32X_HAS_QUIET_NAN__ 1
|
||||||
|
#define __ATOMIC_CONSUME 1
|
||||||
|
#define __GNUC_MINOR__ 3
|
||||||
|
#define __GLIBCXX_TYPE_INT_N_0 __int128
|
||||||
|
#define __INT_FAST16_WIDTH__ 64
|
||||||
|
#define __UINTMAX_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __DEC32_MANT_DIG__ 7
|
||||||
|
#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
|
||||||
|
#define __DBL_MAX_10_EXP__ 308
|
||||||
|
#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
|
||||||
|
#define __INT16_C(c) c
|
||||||
|
#define __STDC__ 1
|
||||||
|
#define __FLT32X_DIG__ 15
|
||||||
|
#define __PTRDIFF_TYPE__ long int
|
||||||
|
#define __ATOMIC_SEQ_CST 5
|
||||||
|
#define __UINT32_TYPE__ unsigned int
|
||||||
|
#define __FLT32X_MIN_10_EXP__ (-307)
|
||||||
|
#define __UINTPTR_TYPE__ long unsigned int
|
||||||
|
#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
|
||||||
|
#define __DEC128_MANT_DIG__ 34
|
||||||
|
#define __LDBL_MIN_10_EXP__ (-4931)
|
||||||
|
#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
|
||||||
|
#define __SSE_MATH__ 1
|
||||||
|
#define __SIZEOF_LONG_LONG__ 8
|
||||||
|
#define __cpp_user_defined_literals 200809
|
||||||
|
#define __FLT128_DECIMAL_DIG__ 36
|
||||||
|
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
|
||||||
|
#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
|
||||||
|
#define __LDBL_DIG__ 18
|
||||||
|
#define __FLT_DECIMAL_DIG__ 9
|
||||||
|
#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
|
||||||
|
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
|
||||||
|
#define __INT_LEAST64_WIDTH__ 64
|
||||||
|
#define __UINT_FAST8_TYPE__ unsigned char
|
||||||
|
#define _GNU_SOURCE 1
|
||||||
|
#define __ATOMIC_ACQ_REL 4
|
||||||
|
#define __ATOMIC_RELEASE 3
|
294
LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp
Normal file
294
LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp
Normal file
@@ -0,0 +1,294 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
** Meta object code from reading C++ file 'ventoy2diskwindow.h'
|
||||||
|
**
|
||||||
|
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.0)
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost!
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "../ventoy2diskwindow.h"
|
||||||
|
#include <QtCore/qbytearray.h>
|
||||||
|
#include <QtCore/qmetatype.h>
|
||||||
|
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||||
|
#error "The header file 'ventoy2diskwindow.h' doesn't include <QObject>."
|
||||||
|
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||||
|
#error "This file was generated using the moc from 5.9.0. It"
|
||||||
|
#error "cannot be used with the include files from this version of Qt."
|
||||||
|
#error "(The moc has changed too much.)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QT_BEGIN_MOC_NAMESPACE
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_DEPRECATED
|
||||||
|
struct qt_meta_stringdata_MyQThread_t {
|
||||||
|
QByteArrayData data[5];
|
||||||
|
char stringdata0[33];
|
||||||
|
};
|
||||||
|
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||||
|
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||||
|
qptrdiff(offsetof(qt_meta_stringdata_MyQThread_t, stringdata0) + ofs \
|
||||||
|
- idx * sizeof(QByteArrayData)) \
|
||||||
|
)
|
||||||
|
static const qt_meta_stringdata_MyQThread_t qt_meta_stringdata_MyQThread = {
|
||||||
|
{
|
||||||
|
QT_MOC_LITERAL(0, 0, 9), // "MyQThread"
|
||||||
|
QT_MOC_LITERAL(1, 10, 12), // "thread_event"
|
||||||
|
QT_MOC_LITERAL(2, 23, 0), // ""
|
||||||
|
QT_MOC_LITERAL(3, 24, 3), // "msg"
|
||||||
|
QT_MOC_LITERAL(4, 28, 4) // "data"
|
||||||
|
|
||||||
|
},
|
||||||
|
"MyQThread\0thread_event\0\0msg\0data"
|
||||||
|
};
|
||||||
|
#undef QT_MOC_LITERAL
|
||||||
|
|
||||||
|
static const uint qt_meta_data_MyQThread[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
7, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
1, 14, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
1, // signalCount
|
||||||
|
|
||||||
|
// signals: name, argc, parameters, tag, flags
|
||||||
|
1, 2, 19, 2, 0x06 /* Public */,
|
||||||
|
|
||||||
|
// signals: parameters
|
||||||
|
QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 4,
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
void MyQThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
MyQThread *_t = static_cast<MyQThread *>(_o);
|
||||||
|
Q_UNUSED(_t)
|
||||||
|
switch (_id) {
|
||||||
|
case 0: _t->thread_event((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
} else if (_c == QMetaObject::IndexOfMethod) {
|
||||||
|
int *result = reinterpret_cast<int *>(_a[0]);
|
||||||
|
void **func = reinterpret_cast<void **>(_a[1]);
|
||||||
|
{
|
||||||
|
typedef void (MyQThread::*_t)(int , int );
|
||||||
|
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MyQThread::thread_event)) {
|
||||||
|
*result = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const QMetaObject MyQThread::staticMetaObject = {
|
||||||
|
{ &QThread::staticMetaObject, qt_meta_stringdata_MyQThread.data,
|
||||||
|
qt_meta_data_MyQThread, qt_static_metacall, nullptr, nullptr}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const QMetaObject *MyQThread::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *MyQThread::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return nullptr;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_MyQThread.stringdata0))
|
||||||
|
return static_cast<void*>(const_cast< MyQThread*>(this));
|
||||||
|
return QThread::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int MyQThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QThread::qt_metacall(_c, _id, _a);
|
||||||
|
if (_id < 0)
|
||||||
|
return _id;
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
if (_id < 1)
|
||||||
|
qt_static_metacall(this, _c, _id, _a);
|
||||||
|
_id -= 1;
|
||||||
|
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||||
|
if (_id < 1)
|
||||||
|
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||||
|
_id -= 1;
|
||||||
|
}
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SIGNAL 0
|
||||||
|
void MyQThread::thread_event(int _t1, int _t2)
|
||||||
|
{
|
||||||
|
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
|
||||||
|
QMetaObject::activate(this, &staticMetaObject, 0, _a);
|
||||||
|
}
|
||||||
|
struct qt_meta_stringdata_Ventoy2DiskWindow_t {
|
||||||
|
QByteArrayData data[19];
|
||||||
|
char stringdata0[367];
|
||||||
|
};
|
||||||
|
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||||
|
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||||
|
qptrdiff(offsetof(qt_meta_stringdata_Ventoy2DiskWindow_t, stringdata0) + ofs \
|
||||||
|
- idx * sizeof(QByteArrayData)) \
|
||||||
|
)
|
||||||
|
static const qt_meta_stringdata_Ventoy2DiskWindow_t qt_meta_stringdata_Ventoy2DiskWindow = {
|
||||||
|
{
|
||||||
|
QT_MOC_LITERAL(0, 0, 17), // "Ventoy2DiskWindow"
|
||||||
|
QT_MOC_LITERAL(1, 18, 12), // "thread_event"
|
||||||
|
QT_MOC_LITERAL(2, 31, 0), // ""
|
||||||
|
QT_MOC_LITERAL(3, 32, 3), // "msg"
|
||||||
|
QT_MOC_LITERAL(4, 36, 4), // "data"
|
||||||
|
QT_MOC_LITERAL(5, 41, 23), // "part_style_check_action"
|
||||||
|
QT_MOC_LITERAL(6, 65, 8), // "QAction*"
|
||||||
|
QT_MOC_LITERAL(7, 74, 3), // "act"
|
||||||
|
QT_MOC_LITERAL(8, 78, 17), // "lang_check_action"
|
||||||
|
QT_MOC_LITERAL(9, 96, 24), // "on_ButtonInstall_clicked"
|
||||||
|
QT_MOC_LITERAL(10, 121, 23), // "on_ButtonUpdate_clicked"
|
||||||
|
QT_MOC_LITERAL(11, 145, 24), // "on_ButtonRefresh_clicked"
|
||||||
|
QT_MOC_LITERAL(12, 170, 37), // "on_comboBoxDevice_currentInde..."
|
||||||
|
QT_MOC_LITERAL(13, 208, 5), // "index"
|
||||||
|
QT_MOC_LITERAL(14, 214, 42), // "on_actionPartition_Configurat..."
|
||||||
|
QT_MOC_LITERAL(15, 257, 31), // "on_actionClear_Ventoy_triggered"
|
||||||
|
QT_MOC_LITERAL(16, 289, 33), // "on_actionShow_All_Devices_tog..."
|
||||||
|
QT_MOC_LITERAL(17, 323, 4), // "arg1"
|
||||||
|
QT_MOC_LITERAL(18, 328, 38) // "on_actionSecure_Boot_Support_..."
|
||||||
|
|
||||||
|
},
|
||||||
|
"Ventoy2DiskWindow\0thread_event\0\0msg\0"
|
||||||
|
"data\0part_style_check_action\0QAction*\0"
|
||||||
|
"act\0lang_check_action\0on_ButtonInstall_clicked\0"
|
||||||
|
"on_ButtonUpdate_clicked\0"
|
||||||
|
"on_ButtonRefresh_clicked\0"
|
||||||
|
"on_comboBoxDevice_currentIndexChanged\0"
|
||||||
|
"index\0on_actionPartition_Configuration_triggered\0"
|
||||||
|
"on_actionClear_Ventoy_triggered\0"
|
||||||
|
"on_actionShow_All_Devices_toggled\0"
|
||||||
|
"arg1\0on_actionSecure_Boot_Support_triggered"
|
||||||
|
};
|
||||||
|
#undef QT_MOC_LITERAL
|
||||||
|
|
||||||
|
static const uint qt_meta_data_Ventoy2DiskWindow[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
7, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
11, 14, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
0, // signalCount
|
||||||
|
|
||||||
|
// slots: name, argc, parameters, tag, flags
|
||||||
|
1, 2, 69, 2, 0x08 /* Private */,
|
||||||
|
5, 1, 74, 2, 0x08 /* Private */,
|
||||||
|
8, 1, 77, 2, 0x08 /* Private */,
|
||||||
|
9, 0, 80, 2, 0x08 /* Private */,
|
||||||
|
10, 0, 81, 2, 0x08 /* Private */,
|
||||||
|
11, 0, 82, 2, 0x08 /* Private */,
|
||||||
|
12, 1, 83, 2, 0x08 /* Private */,
|
||||||
|
14, 0, 86, 2, 0x08 /* Private */,
|
||||||
|
15, 0, 87, 2, 0x08 /* Private */,
|
||||||
|
16, 1, 88, 2, 0x08 /* Private */,
|
||||||
|
18, 0, 91, 2, 0x08 /* Private */,
|
||||||
|
|
||||||
|
// slots: parameters
|
||||||
|
QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 4,
|
||||||
|
QMetaType::Void, 0x80000000 | 6, 7,
|
||||||
|
QMetaType::Void, 0x80000000 | 6, 7,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void, QMetaType::Int, 13,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void, QMetaType::Bool, 17,
|
||||||
|
QMetaType::Void,
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
Ventoy2DiskWindow *_t = static_cast<Ventoy2DiskWindow *>(_o);
|
||||||
|
Q_UNUSED(_t)
|
||||||
|
switch (_id) {
|
||||||
|
case 0: _t->thread_event((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
|
||||||
|
case 1: _t->part_style_check_action((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
|
||||||
|
case 2: _t->lang_check_action((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
|
||||||
|
case 3: _t->on_ButtonInstall_clicked(); break;
|
||||||
|
case 4: _t->on_ButtonUpdate_clicked(); break;
|
||||||
|
case 5: _t->on_ButtonRefresh_clicked(); break;
|
||||||
|
case 6: _t->on_comboBoxDevice_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
|
||||||
|
case 7: _t->on_actionPartition_Configuration_triggered(); break;
|
||||||
|
case 8: _t->on_actionClear_Ventoy_triggered(); break;
|
||||||
|
case 9: _t->on_actionShow_All_Devices_toggled((*reinterpret_cast< bool(*)>(_a[1]))); break;
|
||||||
|
case 10: _t->on_actionSecure_Boot_Support_triggered(); break;
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||||
|
switch (_id) {
|
||||||
|
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||||
|
case 1:
|
||||||
|
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||||
|
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||||
|
case 0:
|
||||||
|
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QAction* >(); break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||||
|
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||||
|
case 0:
|
||||||
|
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QAction* >(); break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const QMetaObject Ventoy2DiskWindow::staticMetaObject = {
|
||||||
|
{ &QMainWindow::staticMetaObject, qt_meta_stringdata_Ventoy2DiskWindow.data,
|
||||||
|
qt_meta_data_Ventoy2DiskWindow, qt_static_metacall, nullptr, nullptr}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const QMetaObject *Ventoy2DiskWindow::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *Ventoy2DiskWindow::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return nullptr;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_Ventoy2DiskWindow.stringdata0))
|
||||||
|
return static_cast<void*>(const_cast< Ventoy2DiskWindow*>(this));
|
||||||
|
return QMainWindow::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Ventoy2DiskWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QMainWindow::qt_metacall(_c, _id, _a);
|
||||||
|
if (_id < 0)
|
||||||
|
return _id;
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
if (_id < 11)
|
||||||
|
qt_static_metacall(this, _c, _id, _a);
|
||||||
|
_id -= 11;
|
||||||
|
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||||
|
if (_id < 11)
|
||||||
|
qt_static_metacall(this, _c, _id, _a);
|
||||||
|
_id -= 11;
|
||||||
|
}
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
QT_WARNING_POP
|
||||||
|
QT_END_MOC_NAMESPACE
|
113
LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h
Normal file
113
LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
/********************************************************************************
|
||||||
|
** Form generated from reading UI file 'partcfgdialog.ui'
|
||||||
|
**
|
||||||
|
** Created by: Qt User Interface Compiler version 5.9.0
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||||
|
********************************************************************************/
|
||||||
|
|
||||||
|
#ifndef UI_PARTCFGDIALOG_H
|
||||||
|
#define UI_PARTCFGDIALOG_H
|
||||||
|
|
||||||
|
#include <QtCore/QVariant>
|
||||||
|
#include <QtWidgets/QAction>
|
||||||
|
#include <QtWidgets/QApplication>
|
||||||
|
#include <QtWidgets/QButtonGroup>
|
||||||
|
#include <QtWidgets/QCheckBox>
|
||||||
|
#include <QtWidgets/QComboBox>
|
||||||
|
#include <QtWidgets/QDialog>
|
||||||
|
#include <QtWidgets/QGroupBox>
|
||||||
|
#include <QtWidgets/QHeaderView>
|
||||||
|
#include <QtWidgets/QLineEdit>
|
||||||
|
#include <QtWidgets/QPushButton>
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
class Ui_PartCfgDialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QPushButton *pushButtonOK;
|
||||||
|
QPushButton *pushButtonCancel;
|
||||||
|
QGroupBox *groupBox;
|
||||||
|
QCheckBox *checkBox;
|
||||||
|
QGroupBox *groupBox_2;
|
||||||
|
QLineEdit *lineEdit;
|
||||||
|
QGroupBox *groupBox_3;
|
||||||
|
QComboBox *comboBox;
|
||||||
|
QGroupBox *groupBox_4;
|
||||||
|
QCheckBox *checkBox_2;
|
||||||
|
|
||||||
|
void setupUi(QDialog *PartCfgDialog)
|
||||||
|
{
|
||||||
|
if (PartCfgDialog->objectName().isEmpty())
|
||||||
|
PartCfgDialog->setObjectName(QStringLiteral("PartCfgDialog"));
|
||||||
|
PartCfgDialog->resize(420, 258);
|
||||||
|
pushButtonOK = new QPushButton(PartCfgDialog);
|
||||||
|
pushButtonOK->setObjectName(QStringLiteral("pushButtonOK"));
|
||||||
|
pushButtonOK->setGeometry(QRect(90, 210, 90, 30));
|
||||||
|
pushButtonCancel = new QPushButton(PartCfgDialog);
|
||||||
|
pushButtonCancel->setObjectName(QStringLiteral("pushButtonCancel"));
|
||||||
|
pushButtonCancel->setGeometry(QRect(230, 210, 90, 30));
|
||||||
|
groupBox = new QGroupBox(PartCfgDialog);
|
||||||
|
groupBox->setObjectName(QStringLiteral("groupBox"));
|
||||||
|
groupBox->setGeometry(QRect(10, 0, 400, 61));
|
||||||
|
checkBox = new QCheckBox(groupBox);
|
||||||
|
checkBox->setObjectName(QStringLiteral("checkBox"));
|
||||||
|
checkBox->setGeometry(QRect(10, 20, 381, 41));
|
||||||
|
checkBox->setAutoRepeatInterval(0);
|
||||||
|
groupBox_2 = new QGroupBox(PartCfgDialog);
|
||||||
|
groupBox_2->setObjectName(QStringLiteral("groupBox_2"));
|
||||||
|
groupBox_2->setGeometry(QRect(10, 60, 200, 61));
|
||||||
|
lineEdit = new QLineEdit(groupBox_2);
|
||||||
|
lineEdit->setObjectName(QStringLiteral("lineEdit"));
|
||||||
|
lineEdit->setGeometry(QRect(10, 30, 181, 26));
|
||||||
|
lineEdit->setMaxLength(14);
|
||||||
|
groupBox_3 = new QGroupBox(PartCfgDialog);
|
||||||
|
groupBox_3->setObjectName(QStringLiteral("groupBox_3"));
|
||||||
|
groupBox_3->setGeometry(QRect(210, 60, 200, 60));
|
||||||
|
comboBox = new QComboBox(groupBox_3);
|
||||||
|
comboBox->setObjectName(QStringLiteral("comboBox"));
|
||||||
|
comboBox->setGeometry(QRect(10, 30, 181, 26));
|
||||||
|
groupBox_4 = new QGroupBox(PartCfgDialog);
|
||||||
|
groupBox_4->setObjectName(QStringLiteral("groupBox_4"));
|
||||||
|
groupBox_4->setGeometry(QRect(10, 120, 401, 61));
|
||||||
|
checkBox_2 = new QCheckBox(groupBox_4);
|
||||||
|
checkBox_2->setObjectName(QStringLiteral("checkBox_2"));
|
||||||
|
checkBox_2->setGeometry(QRect(10, 30, 381, 24));
|
||||||
|
checkBox_2->setChecked(true);
|
||||||
|
|
||||||
|
retranslateUi(PartCfgDialog);
|
||||||
|
|
||||||
|
comboBox->setCurrentIndex(1);
|
||||||
|
|
||||||
|
|
||||||
|
QMetaObject::connectSlotsByName(PartCfgDialog);
|
||||||
|
} // setupUi
|
||||||
|
|
||||||
|
void retranslateUi(QDialog *PartCfgDialog)
|
||||||
|
{
|
||||||
|
PartCfgDialog->setWindowTitle(QApplication::translate("PartCfgDialog", "Partition Configuration", Q_NULLPTR));
|
||||||
|
pushButtonOK->setText(QApplication::translate("PartCfgDialog", "OK", Q_NULLPTR));
|
||||||
|
pushButtonCancel->setText(QApplication::translate("PartCfgDialog", "Cancel", Q_NULLPTR));
|
||||||
|
groupBox->setTitle(QString());
|
||||||
|
checkBox->setText(QApplication::translate("PartCfgDialog", "Preserve some space at the end of the disk", Q_NULLPTR));
|
||||||
|
groupBox_2->setTitle(QString());
|
||||||
|
groupBox_3->setTitle(QString());
|
||||||
|
comboBox->clear();
|
||||||
|
comboBox->insertItems(0, QStringList()
|
||||||
|
<< QApplication::translate("PartCfgDialog", "MB", Q_NULLPTR)
|
||||||
|
<< QApplication::translate("PartCfgDialog", "GB", Q_NULLPTR)
|
||||||
|
);
|
||||||
|
groupBox_4->setTitle(QString());
|
||||||
|
checkBox_2->setText(QApplication::translate("PartCfgDialog", "Align partitions with 4KB", Q_NULLPTR));
|
||||||
|
} // retranslateUi
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class PartCfgDialog: public Ui_PartCfgDialog {};
|
||||||
|
} // namespace Ui
|
||||||
|
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#endif // UI_PARTCFGDIALOG_H
|
202
LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h
Normal file
202
LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
/********************************************************************************
|
||||||
|
** Form generated from reading UI file 'ventoy2diskwindow.ui'
|
||||||
|
**
|
||||||
|
** Created by: Qt User Interface Compiler version 5.9.0
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||||
|
********************************************************************************/
|
||||||
|
|
||||||
|
#ifndef UI_VENTOY2DISKWINDOW_H
|
||||||
|
#define UI_VENTOY2DISKWINDOW_H
|
||||||
|
|
||||||
|
#include <QtCore/QVariant>
|
||||||
|
#include <QtWidgets/QAction>
|
||||||
|
#include <QtWidgets/QApplication>
|
||||||
|
#include <QtWidgets/QButtonGroup>
|
||||||
|
#include <QtWidgets/QComboBox>
|
||||||
|
#include <QtWidgets/QGroupBox>
|
||||||
|
#include <QtWidgets/QHeaderView>
|
||||||
|
#include <QtWidgets/QLabel>
|
||||||
|
#include <QtWidgets/QMainWindow>
|
||||||
|
#include <QtWidgets/QMenu>
|
||||||
|
#include <QtWidgets/QMenuBar>
|
||||||
|
#include <QtWidgets/QProgressBar>
|
||||||
|
#include <QtWidgets/QPushButton>
|
||||||
|
#include <QtWidgets/QWidget>
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
class Ui_Ventoy2DiskWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QAction *actionSecure_Boot_Support;
|
||||||
|
QAction *actionMBR;
|
||||||
|
QAction *actionGPT;
|
||||||
|
QAction *actionPartition_Configuration;
|
||||||
|
QAction *actionClear_Ventoy;
|
||||||
|
QAction *actionShow_All_Devices;
|
||||||
|
QWidget *centralwidget;
|
||||||
|
QGroupBox *groupBoxDevice;
|
||||||
|
QComboBox *comboBoxDevice;
|
||||||
|
QPushButton *ButtonRefresh;
|
||||||
|
QGroupBox *groupBoxVentoyLocal;
|
||||||
|
QLabel *labelVentoyLocalVer;
|
||||||
|
QLabel *labelVentoyLocalPartStyle;
|
||||||
|
QLabel *labelVentoyLocalSecure;
|
||||||
|
QGroupBox *groupBoxVentoyDevice;
|
||||||
|
QLabel *labelVentoyDeviceVer;
|
||||||
|
QLabel *labelVentoyDevicePartStyle;
|
||||||
|
QLabel *labelVentoyDeviceSecure;
|
||||||
|
QGroupBox *groupBoxStatus;
|
||||||
|
QProgressBar *progressBar;
|
||||||
|
QPushButton *ButtonInstall;
|
||||||
|
QPushButton *ButtonUpdate;
|
||||||
|
QMenuBar *menubar;
|
||||||
|
QMenu *menuOption;
|
||||||
|
QMenu *menuPartition_Style;
|
||||||
|
QMenu *menuLanguage;
|
||||||
|
|
||||||
|
void setupUi(QMainWindow *Ventoy2DiskWindow)
|
||||||
|
{
|
||||||
|
if (Ventoy2DiskWindow->objectName().isEmpty())
|
||||||
|
Ventoy2DiskWindow->setObjectName(QStringLiteral("Ventoy2DiskWindow"));
|
||||||
|
Ventoy2DiskWindow->resize(441, 367);
|
||||||
|
actionSecure_Boot_Support = new QAction(Ventoy2DiskWindow);
|
||||||
|
actionSecure_Boot_Support->setObjectName(QStringLiteral("actionSecure_Boot_Support"));
|
||||||
|
actionSecure_Boot_Support->setCheckable(true);
|
||||||
|
actionMBR = new QAction(Ventoy2DiskWindow);
|
||||||
|
actionMBR->setObjectName(QStringLiteral("actionMBR"));
|
||||||
|
actionMBR->setCheckable(true);
|
||||||
|
actionGPT = new QAction(Ventoy2DiskWindow);
|
||||||
|
actionGPT->setObjectName(QStringLiteral("actionGPT"));
|
||||||
|
actionGPT->setCheckable(true);
|
||||||
|
actionPartition_Configuration = new QAction(Ventoy2DiskWindow);
|
||||||
|
actionPartition_Configuration->setObjectName(QStringLiteral("actionPartition_Configuration"));
|
||||||
|
actionClear_Ventoy = new QAction(Ventoy2DiskWindow);
|
||||||
|
actionClear_Ventoy->setObjectName(QStringLiteral("actionClear_Ventoy"));
|
||||||
|
actionShow_All_Devices = new QAction(Ventoy2DiskWindow);
|
||||||
|
actionShow_All_Devices->setObjectName(QStringLiteral("actionShow_All_Devices"));
|
||||||
|
actionShow_All_Devices->setCheckable(true);
|
||||||
|
centralwidget = new QWidget(Ventoy2DiskWindow);
|
||||||
|
centralwidget->setObjectName(QStringLiteral("centralwidget"));
|
||||||
|
groupBoxDevice = new QGroupBox(centralwidget);
|
||||||
|
groupBoxDevice->setObjectName(QStringLiteral("groupBoxDevice"));
|
||||||
|
groupBoxDevice->setGeometry(QRect(10, 10, 421, 80));
|
||||||
|
comboBoxDevice = new QComboBox(groupBoxDevice);
|
||||||
|
comboBoxDevice->setObjectName(QStringLiteral("comboBoxDevice"));
|
||||||
|
comboBoxDevice->setGeometry(QRect(10, 40, 361, 26));
|
||||||
|
ButtonRefresh = new QPushButton(groupBoxDevice);
|
||||||
|
ButtonRefresh->setObjectName(QStringLiteral("ButtonRefresh"));
|
||||||
|
ButtonRefresh->setGeometry(QRect(380, 37, 30, 30));
|
||||||
|
QIcon icon;
|
||||||
|
icon.addFile(QStringLiteral("../refresh.ico"), QSize(), QIcon::Normal, QIcon::Off);
|
||||||
|
ButtonRefresh->setIcon(icon);
|
||||||
|
ButtonRefresh->setIconSize(QSize(24, 24));
|
||||||
|
groupBoxVentoyLocal = new QGroupBox(centralwidget);
|
||||||
|
groupBoxVentoyLocal->setObjectName(QStringLiteral("groupBoxVentoyLocal"));
|
||||||
|
groupBoxVentoyLocal->setGeometry(QRect(10, 100, 205, 80));
|
||||||
|
groupBoxVentoyLocal->setAlignment(Qt::AlignCenter);
|
||||||
|
labelVentoyLocalVer = new QLabel(groupBoxVentoyLocal);
|
||||||
|
labelVentoyLocalVer->setObjectName(QStringLiteral("labelVentoyLocalVer"));
|
||||||
|
labelVentoyLocalVer->setGeometry(QRect(30, 30, 135, 41));
|
||||||
|
labelVentoyLocalVer->setAlignment(Qt::AlignCenter);
|
||||||
|
labelVentoyLocalPartStyle = new QLabel(groupBoxVentoyLocal);
|
||||||
|
labelVentoyLocalPartStyle->setObjectName(QStringLiteral("labelVentoyLocalPartStyle"));
|
||||||
|
labelVentoyLocalPartStyle->setGeometry(QRect(172, 60, 31, 18));
|
||||||
|
labelVentoyLocalSecure = new QLabel(groupBoxVentoyLocal);
|
||||||
|
labelVentoyLocalSecure->setObjectName(QStringLiteral("labelVentoyLocalSecure"));
|
||||||
|
labelVentoyLocalSecure->setGeometry(QRect(12, 36, 21, 31));
|
||||||
|
labelVentoyLocalSecure->setPixmap(QPixmap(QString::fromUtf8("../secure.ico")));
|
||||||
|
groupBoxVentoyDevice = new QGroupBox(centralwidget);
|
||||||
|
groupBoxVentoyDevice->setObjectName(QStringLiteral("groupBoxVentoyDevice"));
|
||||||
|
groupBoxVentoyDevice->setGeometry(QRect(225, 100, 205, 80));
|
||||||
|
groupBoxVentoyDevice->setAlignment(Qt::AlignCenter);
|
||||||
|
labelVentoyDeviceVer = new QLabel(groupBoxVentoyDevice);
|
||||||
|
labelVentoyDeviceVer->setObjectName(QStringLiteral("labelVentoyDeviceVer"));
|
||||||
|
labelVentoyDeviceVer->setGeometry(QRect(30, 30, 135, 41));
|
||||||
|
labelVentoyDeviceVer->setAlignment(Qt::AlignCenter);
|
||||||
|
labelVentoyDevicePartStyle = new QLabel(groupBoxVentoyDevice);
|
||||||
|
labelVentoyDevicePartStyle->setObjectName(QStringLiteral("labelVentoyDevicePartStyle"));
|
||||||
|
labelVentoyDevicePartStyle->setGeometry(QRect(172, 60, 31, 18));
|
||||||
|
labelVentoyDeviceSecure = new QLabel(groupBoxVentoyDevice);
|
||||||
|
labelVentoyDeviceSecure->setObjectName(QStringLiteral("labelVentoyDeviceSecure"));
|
||||||
|
labelVentoyDeviceSecure->setGeometry(QRect(12, 36, 21, 31));
|
||||||
|
labelVentoyDeviceSecure->setPixmap(QPixmap(QString::fromUtf8("../secure.ico")));
|
||||||
|
groupBoxStatus = new QGroupBox(centralwidget);
|
||||||
|
groupBoxStatus->setObjectName(QStringLiteral("groupBoxStatus"));
|
||||||
|
groupBoxStatus->setGeometry(QRect(10, 190, 421, 61));
|
||||||
|
progressBar = new QProgressBar(groupBoxStatus);
|
||||||
|
progressBar->setObjectName(QStringLiteral("progressBar"));
|
||||||
|
progressBar->setGeometry(QRect(10, 30, 401, 23));
|
||||||
|
progressBar->setValue(0);
|
||||||
|
progressBar->setTextVisible(false);
|
||||||
|
ButtonInstall = new QPushButton(centralwidget);
|
||||||
|
ButtonInstall->setObjectName(QStringLiteral("ButtonInstall"));
|
||||||
|
ButtonInstall->setGeometry(QRect(90, 275, 101, 41));
|
||||||
|
ButtonUpdate = new QPushButton(centralwidget);
|
||||||
|
ButtonUpdate->setObjectName(QStringLiteral("ButtonUpdate"));
|
||||||
|
ButtonUpdate->setGeometry(QRect(250, 275, 101, 41));
|
||||||
|
Ventoy2DiskWindow->setCentralWidget(centralwidget);
|
||||||
|
menubar = new QMenuBar(Ventoy2DiskWindow);
|
||||||
|
menubar->setObjectName(QStringLiteral("menubar"));
|
||||||
|
menubar->setGeometry(QRect(0, 0, 441, 23));
|
||||||
|
menuOption = new QMenu(menubar);
|
||||||
|
menuOption->setObjectName(QStringLiteral("menuOption"));
|
||||||
|
menuPartition_Style = new QMenu(menuOption);
|
||||||
|
menuPartition_Style->setObjectName(QStringLiteral("menuPartition_Style"));
|
||||||
|
menuLanguage = new QMenu(menubar);
|
||||||
|
menuLanguage->setObjectName(QStringLiteral("menuLanguage"));
|
||||||
|
Ventoy2DiskWindow->setMenuBar(menubar);
|
||||||
|
|
||||||
|
menubar->addAction(menuOption->menuAction());
|
||||||
|
menubar->addAction(menuLanguage->menuAction());
|
||||||
|
menuOption->addAction(actionSecure_Boot_Support);
|
||||||
|
menuOption->addAction(menuPartition_Style->menuAction());
|
||||||
|
menuOption->addAction(actionPartition_Configuration);
|
||||||
|
menuOption->addAction(actionClear_Ventoy);
|
||||||
|
menuOption->addAction(actionShow_All_Devices);
|
||||||
|
menuPartition_Style->addAction(actionMBR);
|
||||||
|
menuPartition_Style->addAction(actionGPT);
|
||||||
|
|
||||||
|
retranslateUi(Ventoy2DiskWindow);
|
||||||
|
|
||||||
|
QMetaObject::connectSlotsByName(Ventoy2DiskWindow);
|
||||||
|
} // setupUi
|
||||||
|
|
||||||
|
void retranslateUi(QMainWindow *Ventoy2DiskWindow)
|
||||||
|
{
|
||||||
|
Ventoy2DiskWindow->setWindowTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy2Disk", Q_NULLPTR));
|
||||||
|
actionSecure_Boot_Support->setText(QApplication::translate("Ventoy2DiskWindow", "Secure Boot Support", Q_NULLPTR));
|
||||||
|
actionMBR->setText(QApplication::translate("Ventoy2DiskWindow", "MBR", Q_NULLPTR));
|
||||||
|
actionGPT->setText(QApplication::translate("Ventoy2DiskWindow", "GPT", Q_NULLPTR));
|
||||||
|
actionPartition_Configuration->setText(QApplication::translate("Ventoy2DiskWindow", "Partition Configuration", Q_NULLPTR));
|
||||||
|
actionClear_Ventoy->setText(QApplication::translate("Ventoy2DiskWindow", "Clear Ventoy", Q_NULLPTR));
|
||||||
|
actionShow_All_Devices->setText(QApplication::translate("Ventoy2DiskWindow", "Show All Devices", Q_NULLPTR));
|
||||||
|
groupBoxDevice->setTitle(QApplication::translate("Ventoy2DiskWindow", "Device", Q_NULLPTR));
|
||||||
|
ButtonRefresh->setText(QString());
|
||||||
|
groupBoxVentoyLocal->setTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy In Package", Q_NULLPTR));
|
||||||
|
labelVentoyLocalVer->setText(QApplication::translate("Ventoy2DiskWindow", "<html><head/><body><p><span style=\" font-size:20pt; font-weight:600; color:#ff0000;\">1.0.53</span></p></body></html>", Q_NULLPTR));
|
||||||
|
labelVentoyLocalPartStyle->setText(QApplication::translate("Ventoy2DiskWindow", "<html><head/><body><p>MBR</p></body></html>", Q_NULLPTR));
|
||||||
|
labelVentoyLocalSecure->setText(QString());
|
||||||
|
groupBoxVentoyDevice->setTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy In Device", Q_NULLPTR));
|
||||||
|
labelVentoyDeviceVer->setText(QApplication::translate("Ventoy2DiskWindow", "<html><head/><body><p><span style=\" font-size:20pt; font-weight:600; color:#ff0000;\">1.0.52</span></p></body></html>", Q_NULLPTR));
|
||||||
|
labelVentoyDevicePartStyle->setText(QApplication::translate("Ventoy2DiskWindow", "<html><head/><body><p>GPT</p></body></html>", Q_NULLPTR));
|
||||||
|
labelVentoyDeviceSecure->setText(QString());
|
||||||
|
groupBoxStatus->setTitle(QApplication::translate("Ventoy2DiskWindow", "Status: REDAY", Q_NULLPTR));
|
||||||
|
progressBar->setFormat(QString());
|
||||||
|
ButtonInstall->setText(QApplication::translate("Ventoy2DiskWindow", "Install", Q_NULLPTR));
|
||||||
|
ButtonUpdate->setText(QApplication::translate("Ventoy2DiskWindow", "Update", Q_NULLPTR));
|
||||||
|
menuOption->setTitle(QApplication::translate("Ventoy2DiskWindow", "Option", Q_NULLPTR));
|
||||||
|
menuPartition_Style->setTitle(QApplication::translate("Ventoy2DiskWindow", "Partition Style", Q_NULLPTR));
|
||||||
|
menuLanguage->setTitle(QApplication::translate("Ventoy2DiskWindow", "Language", Q_NULLPTR));
|
||||||
|
} // retranslateUi
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class Ventoy2DiskWindow: public Ui_Ventoy2DiskWindow {};
|
||||||
|
} // namespace Ui
|
||||||
|
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#endif // UI_VENTOY2DISKWINDOW_H
|
121
LinuxGUI/Ventoy2Disk/QT/main.cpp
Normal file
121
LinuxGUI/Ventoy2Disk/QT/main.cpp
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
#include "ventoy2diskwindow.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QFileInfo>
|
||||||
|
#include <QStyle>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QDesktopWidget>
|
||||||
|
#include <QPixmap>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "ventoy_define.h"
|
||||||
|
#include "ventoy_util.h"
|
||||||
|
#include "ventoy_qt.h"
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
char g_log_file[4096];
|
||||||
|
char g_ini_file[4096];
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
long long size;
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
Ventoy2DiskWindow w;
|
||||||
|
|
||||||
|
#ifdef QT_CHECK_EUID
|
||||||
|
if (geteuid() != 0)
|
||||||
|
{
|
||||||
|
QMessageBox::critical(NULL, "Error", "Permission denied!\nPlease run with root privileges.");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!QFileInfo::exists("./boot/boot.img"))
|
||||||
|
{
|
||||||
|
QString curdir = a.applicationDirPath();
|
||||||
|
int index = curdir.indexOf("/tool/");
|
||||||
|
|
||||||
|
if (index >= 0)
|
||||||
|
{
|
||||||
|
QDir::setCurrent(curdir.left(index));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QDir::setCurrent(curdir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!QFileInfo::exists("./boot/boot.img"))
|
||||||
|
{
|
||||||
|
QMessageBox::critical(NULL, "Error", "Please run under the correct directory.");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_log_init();
|
||||||
|
|
||||||
|
snprintf(g_log_file, sizeof(g_log_file), "./log.txt");
|
||||||
|
snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini");
|
||||||
|
for (int i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0)
|
||||||
|
{
|
||||||
|
snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]);
|
||||||
|
}
|
||||||
|
else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0)
|
||||||
|
{
|
||||||
|
snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QFileInfo Info(g_log_file);
|
||||||
|
size = (long long)Info.size();
|
||||||
|
if (size >= 4 * SIZE_1MB)
|
||||||
|
{
|
||||||
|
QFile::remove(g_log_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
vlog("===================================================\n");
|
||||||
|
vlog("===== Ventoy2Disk %s powered by QT %s =====\n", ventoy_get_local_version(), qVersion());
|
||||||
|
vlog("===================================================\n");
|
||||||
|
vlog("log file is <%s> lastsize:%lld\n", g_log_file, (long long)size);
|
||||||
|
vlog("ini file is <%s>\n", g_ini_file);
|
||||||
|
|
||||||
|
ventoy_disk_init();
|
||||||
|
ventoy_http_init();
|
||||||
|
|
||||||
|
w.setGeometry(QStyle::alignedRect(Qt::LeftToRight,
|
||||||
|
Qt::AlignCenter,
|
||||||
|
w.size(),
|
||||||
|
a.desktop()->availableGeometry()));
|
||||||
|
|
||||||
|
QPixmap pix;
|
||||||
|
QIcon icon;
|
||||||
|
int len;
|
||||||
|
const uchar *data;
|
||||||
|
|
||||||
|
data = (const uchar *)get_window_icon_raw_data(&len);
|
||||||
|
pix.loadFromData(data, len);
|
||||||
|
icon.addPixmap(pix);
|
||||||
|
w.setWindowIcon(icon);
|
||||||
|
|
||||||
|
w.show();
|
||||||
|
w.setFixedSize(w.size());
|
||||||
|
|
||||||
|
ret = a.exec();
|
||||||
|
|
||||||
|
ventoy_disk_exit();
|
||||||
|
ventoy_http_exit();
|
||||||
|
|
||||||
|
vlog("######## Ventoy2Disk QT %s exit ########\n", ventoy_get_local_version());
|
||||||
|
|
||||||
|
/* log exit must at the end */
|
||||||
|
ventoy_log_exit();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
101
LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp
Normal file
101
LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
#include "partcfgdialog.h"
|
||||||
|
#include "ui_partcfgdialog.h"
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
PartCfgDialog::PartCfgDialog(QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
ui(new Ui::PartCfgDialog)
|
||||||
|
{
|
||||||
|
reserve = false;
|
||||||
|
unit = 1;
|
||||||
|
align = true;
|
||||||
|
valuestr = "";
|
||||||
|
resvalue = 0;
|
||||||
|
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
ui->lineEdit->setEnabled(false);
|
||||||
|
ui->comboBox->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
PartCfgDialog::~PartCfgDialog()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PartCfgDialog::update_ui_status()
|
||||||
|
{
|
||||||
|
ui->checkBox->setChecked(reserve);
|
||||||
|
ui->lineEdit->setEnabled(reserve);
|
||||||
|
ui->comboBox->setEnabled(reserve);
|
||||||
|
ui->checkBox_2->setChecked(align);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PartCfgDialog::update_language_ui(QJsonObject &obj)
|
||||||
|
{
|
||||||
|
ui->checkBox->setText(_LANG_STR("STR_PRESERVE_SPACE"));
|
||||||
|
ui->checkBox_2->setText(_LANG_STR("STR_PART_ALIGN_4KB"));
|
||||||
|
ui->pushButtonOK->setText(_LANG_STR("STR_BTN_OK"));
|
||||||
|
ui->pushButtonCancel->setText(_LANG_STR("STR_BTN_CANCEL"));
|
||||||
|
|
||||||
|
invalid_value = _LANG_STR("STR_SPACE_VAL_INVALID");
|
||||||
|
err_title = _LANG_STR("STR_ERROR");
|
||||||
|
}
|
||||||
|
|
||||||
|
void PartCfgDialog::on_pushButtonOK_clicked()
|
||||||
|
{
|
||||||
|
if (ui->checkBox->isChecked())
|
||||||
|
{
|
||||||
|
QString str = ui->lineEdit->text();
|
||||||
|
|
||||||
|
if (str.isEmpty())
|
||||||
|
{
|
||||||
|
QMessageBox::critical(NULL, err_title, invalid_value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < str.size(); i++)
|
||||||
|
{
|
||||||
|
if (str[i] < '0' || str[i] > '9')
|
||||||
|
{
|
||||||
|
QMessageBox::critical(NULL, err_title, invalid_value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
valuestr = str;
|
||||||
|
resvalue = str.toLongLong();
|
||||||
|
reserve = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reserve = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
align = ui->checkBox_2->isChecked();
|
||||||
|
unit = ui->comboBox->currentIndex();
|
||||||
|
|
||||||
|
accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PartCfgDialog::on_pushButtonCancel_clicked()
|
||||||
|
{
|
||||||
|
reject();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PartCfgDialog::on_checkBox_stateChanged(int arg1)
|
||||||
|
{
|
||||||
|
(void)arg1;
|
||||||
|
|
||||||
|
if (ui->checkBox->isChecked())
|
||||||
|
{
|
||||||
|
ui->lineEdit->setEnabled(true);
|
||||||
|
ui->comboBox->setEnabled(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->lineEdit->setEnabled(false);
|
||||||
|
ui->comboBox->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
44
LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h
Normal file
44
LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
#ifndef PARTCFGDIALOG_H
|
||||||
|
#define PARTCFGDIALOG_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QJsonObject>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class PartCfgDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
class PartCfgDialog : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
bool reserve;
|
||||||
|
int unit;
|
||||||
|
bool align;
|
||||||
|
QString valuestr;
|
||||||
|
qint64 resvalue;
|
||||||
|
|
||||||
|
QString invalid_value;
|
||||||
|
QString err_title;
|
||||||
|
void update_ui_status();
|
||||||
|
void update_language_ui(QJsonObject &obj);
|
||||||
|
|
||||||
|
explicit PartCfgDialog(QWidget *parent = nullptr);
|
||||||
|
~PartCfgDialog();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_pushButtonOK_clicked();
|
||||||
|
|
||||||
|
void on_pushButtonCancel_clicked();
|
||||||
|
|
||||||
|
void on_checkBox_stateChanged(int arg1);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::PartCfgDialog *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define _LANG_STR(id) obj.value(id).toString()
|
||||||
|
|
||||||
|
#endif // PARTCFGDIALOG_H
|
165
LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui
Normal file
165
LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>PartCfgDialog</class>
|
||||||
|
<widget class="QDialog" name="PartCfgDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>420</width>
|
||||||
|
<height>258</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Partition Configuration</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QPushButton" name="pushButtonOK">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>90</x>
|
||||||
|
<y>210</y>
|
||||||
|
<width>90</width>
|
||||||
|
<height>30</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>OK</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButtonCancel">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>230</x>
|
||||||
|
<y>210</y>
|
||||||
|
<width>90</width>
|
||||||
|
<height>30</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Cancel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>10</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>51</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<widget class="QCheckBox" name="checkBox">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>10</y>
|
||||||
|
<width>381</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Preserve some space at the end of the disk</string>
|
||||||
|
</property>
|
||||||
|
<property name="autoRepeatInterval">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>60</y>
|
||||||
|
<width>200</width>
|
||||||
|
<height>60</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<widget class="QLineEdit" name="lineEdit">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>20</y>
|
||||||
|
<width>181</width>
|
||||||
|
<height>26</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>14</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>210</x>
|
||||||
|
<y>60</y>
|
||||||
|
<width>200</width>
|
||||||
|
<height>60</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<widget class="QComboBox" name="comboBox">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>20</y>
|
||||||
|
<width>181</width>
|
||||||
|
<height>26</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>MB</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>GB</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>401</width>
|
||||||
|
<height>51</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<widget class="QCheckBox" name="checkBox_2">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>18</y>
|
||||||
|
<width>381</width>
|
||||||
|
<height>24</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Align partitions with 4KB</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
300
LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c
Normal file
300
LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* refresh_icon_data.c
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
static unsigned char refresh_icon_hexData[4286] = {
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x20, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xA8, 0x10,
|
||||||
|
0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x27,
|
||||||
|
0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE,
|
||||||
|
0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE,
|
||||||
|
0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE,
|
||||||
|
0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE,
|
||||||
|
0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0xD9, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB2, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBE,
|
||||||
|
0x31, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xB7, 0xCA, 0x59, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC0, 0xD1,
|
||||||
|
0x6E, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xAF, 0xC5, 0x48, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xD4, 0xE0,
|
||||||
|
0x9D, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFD, 0xFE,
|
||||||
|
0xFB, 0xFF, 0xFB, 0xFC, 0xF5, 0xFF, 0xF2, 0xF6, 0xE1, 0xFF, 0xDD, 0xE6, 0xB1, 0xFF, 0xBD, 0xCF,
|
||||||
|
0x67, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB2, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA8, 0xC0, 0x37, 0xFF, 0xCB, 0xD9, 0x87, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFB,
|
||||||
|
0xF4, 0xFF, 0xD9, 0xE4, 0xA8, 0xFF, 0xAF, 0xC4, 0x46, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0,
|
||||||
|
0x38, 0xFF, 0xD5, 0xE0, 0x9D, 0xFF, 0xFD, 0xFE, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE,
|
||||||
|
0xFD, 0xFF, 0xEE, 0xF3, 0xD9, 0xFF, 0xD9, 0xE3, 0xA8, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xCA, 0xD8,
|
||||||
|
0x85, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xE6, 0xEC, 0xC4, 0xFF, 0xFA, 0xFB, 0xF3, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xED, 0xC7, 0xFF, 0xB1, 0xC6, 0x4C, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xCD, 0xDB,
|
||||||
|
0x8C, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xF7, 0xE7, 0xFF, 0xCB, 0xD9,
|
||||||
|
0x87, 0xFF, 0xAE, 0xC3, 0x43, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xBD, 0xCF, 0x66, 0xFF, 0xE8, 0xEE,
|
||||||
|
0xC9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xAD, 0xC3,
|
||||||
|
0x41, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBC, 0x2D, 0xFF, 0xB8, 0xCB, 0x5C, 0xFF, 0xF6, 0xF9,
|
||||||
|
0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xF5, 0xDF, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAE, 0xC4,
|
||||||
|
0x44, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xD6,
|
||||||
|
0x7E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA9, 0xC0,
|
||||||
|
0x39, 0xFF, 0xC8, 0xD7, 0x80, 0xFF, 0xD0, 0xDC, 0x92, 0xFF, 0xE7, 0xEE, 0xC8, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xB0, 0xC5,
|
||||||
|
0x49, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB0, 0xC6, 0x4A, 0xFF, 0xE3, 0xEA, 0xBE, 0xFF, 0xEA, 0xEF, 0xCE, 0xFF, 0xB8, 0xCB,
|
||||||
|
0x5C, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA8, 0xC0,
|
||||||
|
0x37, 0xFF, 0xE0, 0xE8, 0xB8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF6, 0xE3, 0xFF, 0xB3, 0xC7,
|
||||||
|
0x4F, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB6, 0xCA, 0x58, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xC9, 0xD8, 0x84, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xFE, 0xFE, 0xFD, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xBB, 0xCE, 0x63, 0xFF, 0xA7, 0xBF,
|
||||||
|
0x35, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xF7, 0xF9, 0xEC, 0xFF, 0xBD, 0xCF,
|
||||||
|
0x67, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xBB, 0xCD, 0x63, 0xFF, 0xF6, 0xF8,
|
||||||
|
0xEA, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xEE,
|
||||||
|
0xC9, 0xFF, 0xAC, 0xC2, 0x40, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xBA, 0xCD,
|
||||||
|
0x60, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1,
|
||||||
|
0x3A, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFE, 0xFF, 0xCF, 0xDC, 0x90, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xC9, 0xD8,
|
||||||
|
0x84, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xB8, 0xCB, 0x5B, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0,
|
||||||
|
0x38, 0xFF, 0xA8, 0xBF, 0x37, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB2, 0xC7, 0x4F, 0xFF, 0xF2, 0xF6,
|
||||||
|
0xE2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xE4, 0xEB,
|
||||||
|
0xC1, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xCA, 0xD8,
|
||||||
|
0x85, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xEF,
|
||||||
|
0xCD, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xC7, 0xD6, 0x7E, 0xFF, 0xA9, 0xC0, 0x39, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xC6, 0xD6, 0x7C, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xB5, 0xC9,
|
||||||
|
0x55, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xBC, 0xCE,
|
||||||
|
0x65, 0xFF, 0xA4, 0xBC, 0x2C, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAE, 0xC4, 0x44, 0xFF, 0xE6, 0xED,
|
||||||
|
0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xB9, 0xCC,
|
||||||
|
0x5E, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xC5, 0xD5, 0x79, 0xFF, 0xF1, 0xF5,
|
||||||
|
0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xA7, 0xBE,
|
||||||
|
0x33, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB3, 0xC8,
|
||||||
|
0x51, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA,
|
||||||
|
0xEE, 0xFF, 0xE1, 0xE9, 0xBA, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xC4, 0xD4, 0x78, 0xFF, 0xC6, 0xD6,
|
||||||
|
0x7C, 0xFF, 0xD3, 0xDF, 0x9A, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFC, 0xFD, 0xF9, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xDB, 0xE4, 0xAB, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB3, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xB1, 0xC6, 0x4B, 0xFF, 0xDD, 0xE6, 0xB2, 0xFF, 0xFC, 0xFD, 0xF8, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA,
|
||||||
|
0xEE, 0xFF, 0xD1, 0xDE, 0x96, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xC1, 0xD2, 0x71, 0xFF, 0xE2, 0xEA,
|
||||||
|
0xBC, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF,
|
||||||
|
0xFE, 0xFF, 0xFB, 0xFC, 0xF7, 0xFF, 0xF2, 0xF5, 0xE1, 0xFF, 0xDB, 0xE5, 0xAC, 0xFF, 0xB9, 0xCC,
|
||||||
|
0x5F, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA8, 0xBF,
|
||||||
|
0x36, 0xFF, 0xB3, 0xC7, 0x4F, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC5, 0xD5, 0x7A, 0xFF, 0xC4, 0xD4,
|
||||||
|
0x78, 0xFF, 0xBC, 0xCE, 0x64, 0xFF, 0xB0, 0xC5, 0x48, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA5, 0xBD,
|
||||||
|
0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD,
|
||||||
|
0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
|
||||||
|
0x32, 0xB3, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
|
||||||
|
0x32, 0x71, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE,
|
||||||
|
0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
|
||||||
|
0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE,
|
||||||
|
0x32, 0xC0, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE,
|
||||||
|
0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE,
|
||||||
|
0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE,
|
||||||
|
0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD, 0x31, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
|
||||||
|
0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80,
|
||||||
|
0x01, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00,
|
||||||
|
0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
|
||||||
|
0x00, 0x01, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00,
|
||||||
|
0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x01, 0xFF
|
||||||
|
};
|
||||||
|
|
||||||
|
void *get_refresh_icon_raw_data(int *len)
|
||||||
|
{
|
||||||
|
*len = (int)sizeof(refresh_icon_hexData);
|
||||||
|
return refresh_icon_hexData;
|
||||||
|
}
|
||||||
|
|
91
LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c
Normal file
91
LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* secure_icon_data.c
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
static unsigned char secure_icon_hexData[958] = {
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xA8, 0x03,
|
||||||
|
0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x46, 0x5C,
|
||||||
|
0x00, 0x00, 0x46, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C,
|
||||||
|
0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C,
|
||||||
|
0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C,
|
||||||
|
0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C,
|
||||||
|
0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C,
|
||||||
|
0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C,
|
||||||
|
0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C,
|
||||||
|
0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x6C, 0xC4, 0xFF, 0x00, 0x7C,
|
||||||
|
0xDF, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x7D,
|
||||||
|
0xE1, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
|
||||||
|
0xFB, 0x77, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
|
||||||
|
0xFB, 0x77, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0xD4, 0x01, 0x8B, 0xF9, 0xF7, 0x03, 0x89,
|
||||||
|
0xF3, 0xFF, 0x01, 0x8B, 0xF8, 0xF8, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C,
|
||||||
|
0xFB, 0xF4, 0x01, 0x8B, 0xF8, 0xF8, 0x03, 0x89, 0xF3, 0xFF, 0x01, 0x8B, 0xF9, 0xF7, 0x00, 0x8C,
|
||||||
|
0xFB, 0xD4, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x93, 0xFF, 0x1E, 0x1D, 0x6B,
|
||||||
|
0xA9, 0x6B, 0x32, 0x54, 0x6F, 0xF6, 0x22, 0x65, 0x9A, 0x7D, 0x00, 0x90, 0xFF, 0x39, 0x00, 0x8C,
|
||||||
|
0xFB, 0x3C, 0x00, 0x90, 0xFF, 0x39, 0x22, 0x65, 0x9A, 0x7D, 0x32, 0x54, 0x6F, 0xF6, 0x1D, 0x6B,
|
||||||
|
0xA9, 0x6B, 0x00, 0x93, 0xFF, 0x1E, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x2A, 0x5D,
|
||||||
|
0x85, 0x00, 0x46, 0x3D, 0x36, 0x3A, 0x43, 0x41, 0x3F, 0xF3, 0x45, 0x3F, 0x3A, 0x58, 0x26, 0x62,
|
||||||
|
0x91, 0x00, 0x00, 0x8D, 0xFD, 0x00, 0x26, 0x62, 0x91, 0x00, 0x45, 0x3F, 0x3A, 0x58, 0x43, 0x41,
|
||||||
|
0x3F, 0xF3, 0x46, 0x3D, 0x36, 0x3A, 0x2A, 0x5D, 0x85, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42,
|
||||||
|
0x42, 0x94, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42,
|
||||||
|
0x42, 0x94, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42,
|
||||||
|
0x42, 0x96, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x8E, 0x42, 0x42, 0x42, 0x53, 0x42, 0x42,
|
||||||
|
0x42, 0x8E, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42,
|
||||||
|
0x42, 0xF3, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42,
|
||||||
|
0x42, 0x31, 0x42, 0x42, 0x42, 0x4B, 0x42, 0x42, 0x42, 0x31, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42,
|
||||||
|
0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
|
||||||
|
0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
void *get_secure_icon_raw_data(int *len)
|
||||||
|
{
|
||||||
|
*len = (int)sizeof(secure_icon_hexData);
|
||||||
|
return secure_icon_hexData;
|
||||||
|
}
|
881
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp
Normal file
881
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp
Normal file
@@ -0,0 +1,881 @@
|
|||||||
|
#include "ventoy2diskwindow.h"
|
||||||
|
#include "ui_ventoy2diskwindow.h"
|
||||||
|
#include "partcfgdialog.h"
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "ventoy_define.h"
|
||||||
|
#include "ventoy_util.h"
|
||||||
|
#include "ventoy_disk.h"
|
||||||
|
#include "ventoy_json.h"
|
||||||
|
#include "ventoy_http.h"
|
||||||
|
#include "ventoy_qt.h"
|
||||||
|
}
|
||||||
|
|
||||||
|
MyQThread::MyQThread(QObject *parent) : QThread(parent)
|
||||||
|
{
|
||||||
|
m_index = -1;
|
||||||
|
m_type = 0;
|
||||||
|
m_running = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyQThread::install_run()
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
int pos = 0;
|
||||||
|
int buflen = 0;
|
||||||
|
int percent = 0;
|
||||||
|
char buf[1024];
|
||||||
|
char dec[64];
|
||||||
|
char out[256];
|
||||||
|
char disk_name[32];
|
||||||
|
ventoy_disk *cur;
|
||||||
|
|
||||||
|
vlog("install run %d ...\n", m_index);
|
||||||
|
|
||||||
|
cur = g_disk_list + m_index;
|
||||||
|
snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name);
|
||||||
|
snprintf(dec, sizeof(dec), "%llu", (unsigned long long)m_reserve_space);
|
||||||
|
|
||||||
|
buflen = sizeof(buf);
|
||||||
|
VTOY_JSON_FMT_BEGIN(pos, buf, buflen);
|
||||||
|
VTOY_JSON_FMT_OBJ_BEGIN();
|
||||||
|
VTOY_JSON_FMT_STRN("method", "install");
|
||||||
|
VTOY_JSON_FMT_STRN("disk", disk_name);
|
||||||
|
VTOY_JSON_FMT_STRN("reserve_space", dec);
|
||||||
|
VTOY_JSON_FMT_UINT("partstyle", ventoy_code_get_cur_part_style());
|
||||||
|
VTOY_JSON_FMT_UINT("secure_boot", m_secureboot);
|
||||||
|
VTOY_JSON_FMT_UINT("align_4kb", m_align4K);
|
||||||
|
VTOY_JSON_FMT_OBJ_END();
|
||||||
|
VTOY_JSON_FMT_END(pos);
|
||||||
|
|
||||||
|
out[0] = 0;
|
||||||
|
ventoy_func_handler(buf, out, sizeof(out));
|
||||||
|
vlog("func handler install <%s>\n", out);
|
||||||
|
|
||||||
|
if (strstr(out, "success"))
|
||||||
|
{
|
||||||
|
while (percent != 100)
|
||||||
|
{
|
||||||
|
percent = ventoy_code_get_percent();
|
||||||
|
emit thread_event(THREAD_MSG_PROGRESS_BAR, percent);
|
||||||
|
msleep(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = ventoy_code_get_result();
|
||||||
|
ventoy_code_refresh_device();
|
||||||
|
cur = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
emit thread_event(THREAD_MSG_INSTALL_FINISH, ret);
|
||||||
|
m_running = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyQThread::update_run()
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
int percent = 0;
|
||||||
|
char buf[1024];
|
||||||
|
char out[256];
|
||||||
|
char disk_name[32];
|
||||||
|
ventoy_disk *cur;
|
||||||
|
|
||||||
|
vlog("install run %d ...\n", m_index);
|
||||||
|
|
||||||
|
cur = g_disk_list + m_index;
|
||||||
|
snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name);
|
||||||
|
snprintf(buf, sizeof(buf), "{\"method\":\"update\",\"disk\":\"%s\",\"secure_boot\":%d}", disk_name, m_secureboot);
|
||||||
|
|
||||||
|
out[0] = 0;
|
||||||
|
ventoy_func_handler(buf, out, sizeof(out));
|
||||||
|
vlog("func handler update <%s>\n", out);
|
||||||
|
|
||||||
|
if (strstr(out, "success"))
|
||||||
|
{
|
||||||
|
while (percent != 100)
|
||||||
|
{
|
||||||
|
percent = ventoy_code_get_percent();
|
||||||
|
emit thread_event(THREAD_MSG_PROGRESS_BAR, percent);
|
||||||
|
msleep(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = ventoy_code_get_result();
|
||||||
|
ventoy_code_refresh_device();
|
||||||
|
cur = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
emit thread_event(THREAD_MSG_UPDATE_FINISH, ret);
|
||||||
|
m_running = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyQThread::run()
|
||||||
|
{
|
||||||
|
if (THREAD_TYPE_INSTALL == m_type)
|
||||||
|
{
|
||||||
|
install_run();
|
||||||
|
}
|
||||||
|
else if (THREAD_TYPE_UPDATE == m_type)
|
||||||
|
{
|
||||||
|
update_run();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Ventoy2DiskWindow::Ventoy2DiskWindow(QWidget *parent)
|
||||||
|
: QMainWindow(parent)
|
||||||
|
, ui(new Ui::Ventoy2DiskWindow)
|
||||||
|
{
|
||||||
|
m_partcfg = new PartCfgDialog();
|
||||||
|
m_part_group = new QActionGroup(this);
|
||||||
|
m_lang_group = new QActionGroup(this);
|
||||||
|
m_thread = new MyQThread(this);
|
||||||
|
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
Ventoy2DiskWindow::~Ventoy2DiskWindow()
|
||||||
|
{
|
||||||
|
delete m_partcfg;
|
||||||
|
delete m_part_group;
|
||||||
|
delete m_lang_group;
|
||||||
|
delete m_thread;
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LangCompare(const QString &s1, const QString &s2)
|
||||||
|
{
|
||||||
|
if (true == s1.startsWith("Chinese Simplified") && false == s2.startsWith("Chinese Simplified"))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (false == s1.startsWith("Chinese Simplified") && true == s2.startsWith("Chinese Simplified"))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return s1 < s2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int Ventoy2DiskWindow::lang_string(const QString &id, QString &str)
|
||||||
|
{
|
||||||
|
QString cur = ventoy_code_get_cur_language();
|
||||||
|
|
||||||
|
for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++)
|
||||||
|
{
|
||||||
|
if (p->toObject().value("name") == cur)
|
||||||
|
{
|
||||||
|
str = p->toObject().value(id).toString();
|
||||||
|
str = str.replace("#@", "\r\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::update_ui_language()
|
||||||
|
{
|
||||||
|
QString dev;
|
||||||
|
QJsonObject obj;
|
||||||
|
QString cur = ventoy_code_get_cur_language();
|
||||||
|
|
||||||
|
for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++)
|
||||||
|
{
|
||||||
|
if (p->toObject().value("name") == cur)
|
||||||
|
{
|
||||||
|
obj = p->toObject();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->menuOption->setTitle(_LANG_STR("STR_MENU_OPTION"));
|
||||||
|
ui->actionSecure_Boot_Support->setText(_LANG_STR("STR_MENU_SECURE_BOOT"));
|
||||||
|
ui->menuPartition_Style->setTitle(_LANG_STR("STR_MENU_PART_STYLE"));
|
||||||
|
ui->actionPartition_Configuration->setText(_LANG_STR("STR_MENU_PART_CFG"));
|
||||||
|
ui->actionClear_Ventoy->setText(_LANG_STR("STR_MENU_CLEAR"));
|
||||||
|
ui->actionShow_All_Devices->setText(_LANG_STR("STR_SHOW_ALL_DEV"));
|
||||||
|
|
||||||
|
dev = _LANG_STR("STR_DEVICE");
|
||||||
|
if (m_partcfg->reserve)
|
||||||
|
{
|
||||||
|
QString str;
|
||||||
|
str.sprintf(" [ -%lld%s ]", (long long)m_partcfg->resvalue, m_partcfg->unit ? "GB" : "MB");
|
||||||
|
ui->groupBoxDevice->setTitle(dev + str);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->groupBoxDevice->setTitle(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->groupBoxVentoyLocal->setTitle(_LANG_STR("STR_LOCAL_VER"));
|
||||||
|
ui->groupBoxVentoyDevice->setTitle(_LANG_STR("STR_DISK_VER"));
|
||||||
|
ui->groupBoxStatus->setTitle(_LANG_STR("STR_STATUS"));
|
||||||
|
ui->ButtonInstall->setText(_LANG_STR("STR_INSTALL"));
|
||||||
|
ui->ButtonUpdate->setText(_LANG_STR("STR_UPDATE"));
|
||||||
|
m_partcfg->update_language_ui(obj);
|
||||||
|
m_partcfg->setWindowTitle(_LANG_STR("STR_MENU_PART_CFG"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::lang_check_action(QAction *act)
|
||||||
|
{
|
||||||
|
ventoy_code_set_cur_language(act->text().toStdString().c_str());
|
||||||
|
update_ui_language();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::LoadLanguages()
|
||||||
|
{
|
||||||
|
QString curlang = ventoy_code_get_cur_language();
|
||||||
|
if (curlang.isEmpty())
|
||||||
|
{
|
||||||
|
QString LANG = qgetenv("LANG");
|
||||||
|
if (LANG.startsWith("zh_CN"))
|
||||||
|
{
|
||||||
|
ventoy_code_set_cur_language("Chinese Simplified (简体中文)");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ventoy_code_set_cur_language("English (English)");
|
||||||
|
}
|
||||||
|
curlang = ventoy_code_get_cur_language();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QFile inFile("./tool/languages.json");
|
||||||
|
inFile.open(QIODevice::ReadOnly|QIODevice::Text);
|
||||||
|
QByteArray data = inFile.readAll();
|
||||||
|
inFile.close();
|
||||||
|
|
||||||
|
QJsonParseError errorPtr;
|
||||||
|
QJsonDocument doc = QJsonDocument::fromJson(data, &errorPtr);
|
||||||
|
|
||||||
|
m_lang_array = doc.array();
|
||||||
|
QVector<QString> List;
|
||||||
|
for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++)
|
||||||
|
{
|
||||||
|
List.push_back(p->toObject().value("name").toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
connect(m_lang_group, SIGNAL(triggered(QAction *)), this, SLOT(lang_check_action(QAction *)));
|
||||||
|
|
||||||
|
std::sort(List.begin(), List.end(), LangCompare);
|
||||||
|
|
||||||
|
for (QVector<QString>::iterator p = List.begin(); p != List.end(); p++)
|
||||||
|
{
|
||||||
|
QAction *action = new QAction(*p, m_lang_group);
|
||||||
|
action->setCheckable(true);
|
||||||
|
|
||||||
|
if (p->compare(curlang) == 0)
|
||||||
|
{
|
||||||
|
action->setChecked(true);
|
||||||
|
m_lang_group->triggered(action);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->menuLanguage->addAction(action);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::part_style_check_action(QAction *action)
|
||||||
|
{
|
||||||
|
int style = 0;
|
||||||
|
|
||||||
|
if (action->text() == "MBR")
|
||||||
|
{
|
||||||
|
style = 0;
|
||||||
|
ui->labelVentoyLocalPartStyle->setText("MBR");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
style = 1;
|
||||||
|
ui->labelVentoyLocalPartStyle->setText("GPT");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (style != ventoy_code_get_cur_part_style())
|
||||||
|
{
|
||||||
|
ventoy_code_set_cur_part_style(style);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static ventoy_disk *select_active_dev(const QString &select, int *activeid)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int alldev = ventoy_code_get_cur_show_all();
|
||||||
|
ventoy_disk *cur = NULL;
|
||||||
|
|
||||||
|
/* find the match one */
|
||||||
|
if (!select.isEmpty())
|
||||||
|
{
|
||||||
|
for (i = 0; i < g_disk_num; i++)
|
||||||
|
{
|
||||||
|
cur = g_disk_list + i;
|
||||||
|
if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (select.compare(cur->disk_name) == 0)
|
||||||
|
{
|
||||||
|
*activeid = i;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* find the first one that installed with Ventoy */
|
||||||
|
for (i = 0; i < g_disk_num; i++)
|
||||||
|
{
|
||||||
|
cur = g_disk_list + i;
|
||||||
|
if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cur->vtoydata.ventoy_valid)
|
||||||
|
{
|
||||||
|
*activeid = i;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* find the first USB interface device */
|
||||||
|
for (i = 0; i < g_disk_num; i++)
|
||||||
|
{
|
||||||
|
cur = g_disk_list + i;
|
||||||
|
if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cur->type == VTOY_DEVICE_USB)
|
||||||
|
{
|
||||||
|
*activeid = i;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* use the first one */
|
||||||
|
for (i = 0; i < g_disk_num; i++)
|
||||||
|
{
|
||||||
|
cur = g_disk_list + i;
|
||||||
|
if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
*activeid = i;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::FillDeviceList(const QString &select)
|
||||||
|
{
|
||||||
|
int active;
|
||||||
|
int count = 0;
|
||||||
|
int alldev = ventoy_code_get_cur_show_all();
|
||||||
|
ventoy_disk *cur;
|
||||||
|
|
||||||
|
ui->comboBoxDevice->clear();
|
||||||
|
|
||||||
|
for (int i = 0; i < g_disk_num; i++)
|
||||||
|
{
|
||||||
|
cur = g_disk_list + i;
|
||||||
|
|
||||||
|
if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString item;
|
||||||
|
item.sprintf("%s [%s] %s", cur->disk_name, cur->human_readable_size, cur->disk_model);
|
||||||
|
ui->comboBoxDevice->addItem(item);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = select_active_dev(select, &active);
|
||||||
|
if (cur)
|
||||||
|
{
|
||||||
|
vlog("combox count:%d, active:%s id:%d\n", count, cur->disk_name, active);
|
||||||
|
ui->ButtonInstall->setEnabled(true);
|
||||||
|
ui->ButtonUpdate->setEnabled(cur->vtoydata.ventoy_valid);
|
||||||
|
ui->comboBoxDevice->setCurrentIndex(active);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vlog("combox count:%d, no active id\n", count);
|
||||||
|
ui->ButtonInstall->setEnabled(false);
|
||||||
|
ui->ButtonUpdate->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::OnInitWindow(void)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
const uchar *data;
|
||||||
|
QIcon icon;
|
||||||
|
QPixmap pix1;
|
||||||
|
QPixmap pix2;
|
||||||
|
char ver[512];
|
||||||
|
|
||||||
|
ui->labelVentoyLocalSecure->hide();
|
||||||
|
|
||||||
|
m_part_group->addAction(ui->actionMBR);
|
||||||
|
m_part_group->addAction(ui->actionGPT);
|
||||||
|
connect(m_part_group, SIGNAL(triggered(QAction *)), this, SLOT(part_style_check_action(QAction *)));
|
||||||
|
|
||||||
|
if (ventoy_code_get_cur_part_style())
|
||||||
|
{
|
||||||
|
ui->actionGPT->setChecked(true);
|
||||||
|
m_part_group->triggered(ui->actionGPT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->actionMBR->setChecked(true);
|
||||||
|
m_part_group->triggered(ui->actionMBR);
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(ver, sizeof(ver), VERSION_FMT, ventoy_get_local_version());
|
||||||
|
ui->labelVentoyLocalVer->setText(QApplication::translate("Ventoy2DiskWindow", ver, nullptr));
|
||||||
|
|
||||||
|
LoadLanguages();
|
||||||
|
|
||||||
|
data = (const uchar *)get_refresh_icon_raw_data(&len);
|
||||||
|
pix1.loadFromData(data, len);
|
||||||
|
icon.addPixmap(pix1);
|
||||||
|
ui->ButtonRefresh->setIcon(icon);
|
||||||
|
|
||||||
|
data = (const uchar *)get_secure_icon_raw_data(&len);
|
||||||
|
pix2.loadFromData(data, len);
|
||||||
|
ui->labelVentoyLocalSecure->setPixmap(pix2);
|
||||||
|
ui->labelVentoyDeviceSecure->setPixmap(pix2);
|
||||||
|
|
||||||
|
ui->labelVentoyDeviceSecure->setHidden(true);
|
||||||
|
ui->labelVentoyDeviceVer->setText("");
|
||||||
|
ui->labelVentoyDevicePartStyle->setText("");
|
||||||
|
|
||||||
|
ui->actionShow_All_Devices->setChecked(ventoy_code_get_cur_show_all());
|
||||||
|
|
||||||
|
connect(m_thread, &MyQThread::thread_event, this, &Ventoy2DiskWindow::thread_event);
|
||||||
|
|
||||||
|
FillDeviceList("");
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::showEvent(QShowEvent *ev)
|
||||||
|
{
|
||||||
|
QMainWindow::showEvent(ev);
|
||||||
|
OnInitWindow();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_ButtonInstall_clicked()
|
||||||
|
{
|
||||||
|
int index;
|
||||||
|
quint64 size = 0, space = 0;
|
||||||
|
ventoy_disk *cur;
|
||||||
|
QString title_warn, title_err, msg;
|
||||||
|
|
||||||
|
lang_string("STR_ERROR", title_err);
|
||||||
|
lang_string("STR_WARNING", title_warn);
|
||||||
|
|
||||||
|
if (m_thread->m_running || ventoy_code_is_busy())
|
||||||
|
{
|
||||||
|
lang_string("STR_WAIT_PROCESS", msg);
|
||||||
|
QMessageBox::warning(NULL, title_warn, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
index = ui->comboBoxDevice->currentIndex();
|
||||||
|
if (index < 0 || index > g_disk_num)
|
||||||
|
{
|
||||||
|
vlog("Invalid combobox current index %d\n", index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = g_disk_list + index;
|
||||||
|
if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL)
|
||||||
|
{
|
||||||
|
lang_string("STR_DISK_2TB_MBR_ERROR", msg);
|
||||||
|
QMessageBox::critical(NULL, title_err, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_partcfg->reserve)
|
||||||
|
{
|
||||||
|
size = cur->size_in_byte / SIZE_1MB;
|
||||||
|
space = m_partcfg->resvalue;
|
||||||
|
if (m_partcfg->unit == 1)
|
||||||
|
{
|
||||||
|
space = m_partcfg->resvalue * 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size <= space || (size - space) <= VTOYEFI_PART_BYTES / SIZE_1MB)
|
||||||
|
{
|
||||||
|
lang_string("STR_SPACE_VAL_INVALID", msg);
|
||||||
|
QMessageBox::critical(NULL, title_err, msg);
|
||||||
|
vlog("reserved space too big.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lang_string("STR_INSTALL_TIP", msg);
|
||||||
|
if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lang_string("STR_INSTALL_TIP2", msg);
|
||||||
|
if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->ButtonRefresh->setEnabled(false);
|
||||||
|
ui->ButtonInstall->setEnabled(false);
|
||||||
|
ui->ButtonRefresh->setEnabled(false);
|
||||||
|
|
||||||
|
m_thread->m_type = THREAD_TYPE_INSTALL;
|
||||||
|
m_thread->m_index = index;
|
||||||
|
m_thread->m_reserve_space = space * SIZE_1MB;
|
||||||
|
m_thread->m_secureboot = ui->actionSecure_Boot_Support->isChecked();
|
||||||
|
m_thread->m_align4K = m_partcfg->align;
|
||||||
|
m_thread->m_running = true;
|
||||||
|
|
||||||
|
m_thread->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_ButtonUpdate_clicked()
|
||||||
|
{
|
||||||
|
int index;
|
||||||
|
ventoy_disk *cur;
|
||||||
|
QString title_info, title_warn, title_err, msg;
|
||||||
|
|
||||||
|
lang_string("STR_ERROR", title_err);
|
||||||
|
lang_string("STR_WARNING", title_warn);
|
||||||
|
lang_string("STR_INFO", title_info);
|
||||||
|
|
||||||
|
if (m_thread->m_running || ventoy_code_is_busy())
|
||||||
|
{
|
||||||
|
lang_string("STR_WAIT_PROCESS", msg);
|
||||||
|
QMessageBox::warning(NULL, title_warn, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
index = ui->comboBoxDevice->currentIndex();
|
||||||
|
if (index < 0 || index > g_disk_num)
|
||||||
|
{
|
||||||
|
vlog("Invalid combobox current index %d\n", index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = g_disk_list + index;
|
||||||
|
if (cur->vtoydata.ventoy_valid == 0)
|
||||||
|
{
|
||||||
|
vlog("invalid ventoy version");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lang_string("STR_UPDATE_TIP", msg);
|
||||||
|
if (QMessageBox::Yes != QMessageBox::information(NULL, title_info, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->ButtonRefresh->setEnabled(false);
|
||||||
|
ui->ButtonInstall->setEnabled(false);
|
||||||
|
ui->ButtonRefresh->setEnabled(false);
|
||||||
|
|
||||||
|
m_thread->m_type = THREAD_TYPE_UPDATE;
|
||||||
|
m_thread->m_index = index;
|
||||||
|
m_thread->m_secureboot = ui->actionSecure_Boot_Support->isChecked();
|
||||||
|
|
||||||
|
m_thread->m_running = true;
|
||||||
|
m_thread->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_ButtonRefresh_clicked()
|
||||||
|
{
|
||||||
|
QString title_warn, msg;
|
||||||
|
|
||||||
|
if (m_thread->m_running || ventoy_code_is_busy())
|
||||||
|
{
|
||||||
|
lang_string("STR_WARNING", title_warn);
|
||||||
|
lang_string("STR_WAIT_PROCESS", msg);
|
||||||
|
QMessageBox::warning(NULL, title_warn, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_code_refresh_device();
|
||||||
|
FillDeviceList("");
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_comboBoxDevice_currentIndexChanged(int index)
|
||||||
|
{
|
||||||
|
char ver[512];
|
||||||
|
ventoy_disk *cur;
|
||||||
|
|
||||||
|
ui->labelVentoyDeviceSecure->setHidden(true);
|
||||||
|
ui->labelVentoyDeviceVer->setText("");
|
||||||
|
ui->labelVentoyDevicePartStyle->setText("");
|
||||||
|
|
||||||
|
if (index < 0 || index > g_disk_num)
|
||||||
|
{
|
||||||
|
vlog("invalid combobox index %d\n", index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = g_disk_list + index;
|
||||||
|
if (cur->vtoydata.ventoy_valid)
|
||||||
|
{
|
||||||
|
if (cur->vtoydata.secure_boot_flag)
|
||||||
|
{
|
||||||
|
ui->labelVentoyDeviceSecure->setHidden(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->labelVentoyDeviceSecure->setHidden(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int)(ui->actionSecure_Boot_Support->isChecked()) != cur->vtoydata.secure_boot_flag)
|
||||||
|
{
|
||||||
|
ui->actionSecure_Boot_Support->trigger();
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(ver, sizeof(ver), VERSION_FMT, cur->vtoydata.ventoy_ver);
|
||||||
|
ui->labelVentoyDeviceVer->setText(QApplication::translate("Ventoy2DiskWindow", ver, nullptr));
|
||||||
|
ui->labelVentoyDevicePartStyle->setText(cur->vtoydata.partition_style ? "GPT" : "MBR");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ui->actionSecure_Boot_Support->isChecked())
|
||||||
|
{
|
||||||
|
ui->actionSecure_Boot_Support->trigger();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_actionPartition_Configuration_triggered()
|
||||||
|
{
|
||||||
|
m_partcfg->update_ui_status();
|
||||||
|
if (QDialog::Accepted == m_partcfg->exec())
|
||||||
|
{
|
||||||
|
QString str;
|
||||||
|
QString dev;
|
||||||
|
lang_string("STR_DEVICE", dev);
|
||||||
|
|
||||||
|
if (m_partcfg->reserve)
|
||||||
|
{
|
||||||
|
str.sprintf(" [ -%lld%s ]", (long long)m_partcfg->resvalue, m_partcfg->unit ? "GB" : "MB");
|
||||||
|
ui->groupBoxDevice->setTitle(dev + str);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->groupBoxDevice->setTitle(dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_actionClear_Ventoy_triggered()
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
int index;
|
||||||
|
ventoy_disk *cur;
|
||||||
|
QString title_err, title_warn, title_info, msg;
|
||||||
|
char disk_name[64];
|
||||||
|
char buf[256];
|
||||||
|
char out[256];
|
||||||
|
|
||||||
|
lang_string("STR_ERROR", title_err);
|
||||||
|
lang_string("STR_WARNING", title_warn);
|
||||||
|
lang_string("STR_INFO", title_info);
|
||||||
|
|
||||||
|
if (m_thread->m_running || ventoy_code_is_busy())
|
||||||
|
{
|
||||||
|
lang_string("STR_WAIT_PROCESS", msg);
|
||||||
|
QMessageBox::warning(NULL, title_warn, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
index = ui->comboBoxDevice->currentIndex();
|
||||||
|
if (index < 0 || index > g_disk_num)
|
||||||
|
{
|
||||||
|
vlog("Invalid combobox current index %d\n", index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = g_disk_list + index;
|
||||||
|
|
||||||
|
lang_string("STR_INSTALL_TIP", msg);
|
||||||
|
if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lang_string("STR_INSTALL_TIP2", msg);
|
||||||
|
if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name);
|
||||||
|
snprintf(buf, sizeof(buf), "{\"method\":\"clean\",\"disk\":\"%s\"}", disk_name);
|
||||||
|
|
||||||
|
out[0] = 0;
|
||||||
|
ventoy_func_handler(buf, out, sizeof(out));
|
||||||
|
vlog("func handler clean <%s>\n", out);
|
||||||
|
|
||||||
|
if (strstr(out, "success"))
|
||||||
|
{
|
||||||
|
ret = ventoy_code_get_result();
|
||||||
|
ventoy_code_refresh_device();
|
||||||
|
cur = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
lang_string("STR_CLEAR_SUCCESS", msg);
|
||||||
|
QMessageBox::information(NULL, title_info, msg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lang_string("STR_CLEAR_FAILED", msg);
|
||||||
|
QMessageBox::critical(NULL, title_err, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
FillDeviceList(disk_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_actionShow_All_Devices_toggled(bool arg1)
|
||||||
|
{
|
||||||
|
ventoy_code_set_cur_show_all(arg1);
|
||||||
|
FillDeviceList("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
vlog("On closeEvent ...\n");
|
||||||
|
|
||||||
|
if (m_thread->m_running)
|
||||||
|
{
|
||||||
|
QString title;
|
||||||
|
QString msg;
|
||||||
|
|
||||||
|
lang_string("STR_WARNING", title);
|
||||||
|
lang_string("STR_WAIT_PROCESS", msg);
|
||||||
|
QMessageBox::warning(NULL, title, msg);
|
||||||
|
|
||||||
|
event->ignore();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_code_save_cfg();
|
||||||
|
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::on_actionSecure_Boot_Support_triggered()
|
||||||
|
{
|
||||||
|
ui->labelVentoyLocalSecure->setHidden(!(ui->actionSecure_Boot_Support->isChecked()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::set_percent(int percent)
|
||||||
|
{
|
||||||
|
int index;
|
||||||
|
QString status, radio;
|
||||||
|
|
||||||
|
ui->progressBar->setValue(percent);
|
||||||
|
|
||||||
|
lang_string("STR_STATUS", status);
|
||||||
|
|
||||||
|
if (percent == 0)
|
||||||
|
{
|
||||||
|
ui->groupBoxStatus->setTitle(status);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
index = status.indexOf("-");
|
||||||
|
radio.sprintf("%d%%", percent);
|
||||||
|
ui->groupBoxStatus->setTitle(status.left(index + 2) + radio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ventoy2DiskWindow::thread_event(int msg, int data)
|
||||||
|
{
|
||||||
|
char disk_name[32];
|
||||||
|
QString title_err, title_info, tipmsg;
|
||||||
|
|
||||||
|
if (msg == THREAD_MSG_PROGRESS_BAR)
|
||||||
|
{
|
||||||
|
set_percent(data);
|
||||||
|
}
|
||||||
|
else if (msg == THREAD_MSG_INSTALL_FINISH)
|
||||||
|
{
|
||||||
|
lang_string("STR_ERROR", title_err);
|
||||||
|
lang_string("STR_INFO", title_info);
|
||||||
|
|
||||||
|
if (data == 0)
|
||||||
|
{
|
||||||
|
lang_string("STR_INSTALL_SUCCESS", tipmsg);
|
||||||
|
QMessageBox::information(NULL, title_info, tipmsg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lang_string("STR_INSTALL_FAILED", tipmsg);
|
||||||
|
QMessageBox::critical(NULL, title_err, tipmsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_percent(0);
|
||||||
|
ui->ButtonRefresh->setEnabled(true);
|
||||||
|
ui->ButtonInstall->setEnabled(true);
|
||||||
|
ui->ButtonRefresh->setEnabled(true);
|
||||||
|
|
||||||
|
snprintf(disk_name, sizeof(disk_name), "%s", g_disk_list[m_thread->m_index].disk_name);
|
||||||
|
FillDeviceList(disk_name);
|
||||||
|
}
|
||||||
|
else if (msg == THREAD_MSG_UPDATE_FINISH)
|
||||||
|
{
|
||||||
|
lang_string("STR_ERROR", title_err);
|
||||||
|
lang_string("STR_INFO", title_info);
|
||||||
|
|
||||||
|
if (data == 0)
|
||||||
|
{
|
||||||
|
lang_string("STR_UPDATE_SUCCESS", tipmsg);
|
||||||
|
QMessageBox::information(NULL, title_info, tipmsg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lang_string("STR_UPDATE_FAILED", tipmsg);
|
||||||
|
QMessageBox::critical(NULL, title_err, tipmsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_percent(0);
|
||||||
|
ui->ButtonRefresh->setEnabled(true);
|
||||||
|
ui->ButtonInstall->setEnabled(true);
|
||||||
|
ui->ButtonRefresh->setEnabled(true);
|
||||||
|
|
||||||
|
snprintf(disk_name, sizeof(disk_name), "%s", g_disk_list[m_thread->m_index].disk_name);
|
||||||
|
FillDeviceList(disk_name);
|
||||||
|
}
|
||||||
|
}
|
105
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h
Normal file
105
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
#ifndef VENTOY2DISKWINDOW_H
|
||||||
|
#define VENTOY2DISKWINDOW_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <QActionGroup>
|
||||||
|
#include <QJsonDocument>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QJsonArray>
|
||||||
|
#include <QVector>
|
||||||
|
#include <QtGlobal>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QCloseEvent>
|
||||||
|
#include <QThread>
|
||||||
|
#include "partcfgdialog.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
namespace Ui { class Ventoy2DiskWindow; }
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#define THREAD_TYPE_INSTALL 1
|
||||||
|
#define THREAD_TYPE_UPDATE 2
|
||||||
|
|
||||||
|
#define THREAD_MSG_PROGRESS_BAR 1
|
||||||
|
#define THREAD_MSG_INSTALL_FINISH 2
|
||||||
|
#define THREAD_MSG_UPDATE_FINISH 3
|
||||||
|
|
||||||
|
class MyQThread : public QThread
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
quint64 m_reserve_space;
|
||||||
|
int m_index;
|
||||||
|
int m_type;
|
||||||
|
int m_secureboot;
|
||||||
|
int m_align4K;
|
||||||
|
bool m_running;
|
||||||
|
void install_run();
|
||||||
|
void update_run();
|
||||||
|
|
||||||
|
explicit MyQThread(QObject *parent = nullptr);
|
||||||
|
protected:
|
||||||
|
void run();
|
||||||
|
signals:
|
||||||
|
void thread_event(int msg, int data);
|
||||||
|
public slots:
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Ventoy2DiskWindow : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
Ventoy2DiskWindow(QWidget *parent = nullptr);
|
||||||
|
~Ventoy2DiskWindow();
|
||||||
|
|
||||||
|
QActionGroup *m_part_group;
|
||||||
|
QActionGroup *m_lang_group;
|
||||||
|
QJsonArray m_lang_array;
|
||||||
|
PartCfgDialog *m_partcfg;
|
||||||
|
MyQThread *m_thread;
|
||||||
|
|
||||||
|
void FillDeviceList(const QString &select);
|
||||||
|
void OnInitWindow(void);
|
||||||
|
void LoadLanguages();
|
||||||
|
int lang_string(const QString &id, QString &str);
|
||||||
|
void update_ui_language();
|
||||||
|
void set_percent(int percent);
|
||||||
|
protected:
|
||||||
|
void showEvent(QShowEvent *ev);
|
||||||
|
void closeEvent(QCloseEvent *event);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
|
||||||
|
void thread_event(int msg, int data);
|
||||||
|
void part_style_check_action(QAction *act);
|
||||||
|
void lang_check_action(QAction *act);
|
||||||
|
|
||||||
|
void on_ButtonInstall_clicked();
|
||||||
|
|
||||||
|
void on_ButtonUpdate_clicked();
|
||||||
|
|
||||||
|
void on_ButtonRefresh_clicked();
|
||||||
|
|
||||||
|
void on_comboBoxDevice_currentIndexChanged(int index);
|
||||||
|
|
||||||
|
void on_actionPartition_Configuration_triggered();
|
||||||
|
|
||||||
|
void on_actionClear_Ventoy_triggered();
|
||||||
|
|
||||||
|
void on_actionShow_All_Devices_toggled(bool arg1);
|
||||||
|
|
||||||
|
void on_actionSecure_Boot_Support_triggered();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::Ventoy2DiskWindow *ui;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#define _LANG_STR(id) obj.value(id).toString()
|
||||||
|
#define VERSION_FMT "<html><head/><body><p><span style=\" font-size:20pt; font-weight:600; color:#ff0000;\">%s</span></p></body></html>"
|
||||||
|
|
||||||
|
#endif // VENTOY2DISKWINDOW_H
|
323
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui
Normal file
323
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>Ventoy2DiskWindow</class>
|
||||||
|
<widget class="QMainWindow" name="Ventoy2DiskWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>441</width>
|
||||||
|
<height>367</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Ventoy2Disk</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget">
|
||||||
|
<widget class="QGroupBox" name="groupBoxDevice">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>10</y>
|
||||||
|
<width>421</width>
|
||||||
|
<height>80</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Device</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QComboBox" name="comboBoxDevice">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>40</y>
|
||||||
|
<width>361</width>
|
||||||
|
<height>26</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="ButtonRefresh">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>380</x>
|
||||||
|
<y>37</y>
|
||||||
|
<width>30</width>
|
||||||
|
<height>30</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>../refresh.ico</normaloff>../refresh.ico</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBoxVentoyLocal">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>205</width>
|
||||||
|
<height>80</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Ventoy In Package</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<widget class="QLabel" name="labelVentoyLocalVer">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>30</x>
|
||||||
|
<y>30</y>
|
||||||
|
<width>135</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p><span style=" font-size:20pt; font-weight:600; color:#ff0000;">1.0.53</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="labelVentoyLocalPartStyle">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>172</x>
|
||||||
|
<y>60</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>18</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p>MBR</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="labelVentoyLocalSecure">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>12</x>
|
||||||
|
<y>36</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>31</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>../secure.ico</pixmap>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBoxVentoyDevice">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>225</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>205</width>
|
||||||
|
<height>80</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Ventoy In Device</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<widget class="QLabel" name="labelVentoyDeviceVer">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>30</x>
|
||||||
|
<y>30</y>
|
||||||
|
<width>135</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p><span style=" font-size:20pt; font-weight:600; color:#ff0000;">1.0.52</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="labelVentoyDevicePartStyle">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>172</x>
|
||||||
|
<y>60</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>18</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p>GPT</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="labelVentoyDeviceSecure">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>12</x>
|
||||||
|
<y>36</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>31</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>../secure.ico</pixmap>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="groupBoxStatus">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>421</width>
|
||||||
|
<height>61</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Status: REDAY</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QProgressBar" name="progressBar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>30</y>
|
||||||
|
<width>401</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="textVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="format">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="ButtonInstall">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>90</x>
|
||||||
|
<y>275</y>
|
||||||
|
<width>101</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Install</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="ButtonUpdate">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>250</x>
|
||||||
|
<y>275</y>
|
||||||
|
<width>101</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Update</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<widget class="QMenuBar" name="menubar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>441</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<widget class="QMenu" name="menuOption">
|
||||||
|
<property name="title">
|
||||||
|
<string>Option</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QMenu" name="menuPartition_Style">
|
||||||
|
<property name="title">
|
||||||
|
<string>Partition Style</string>
|
||||||
|
</property>
|
||||||
|
<addaction name="actionMBR"/>
|
||||||
|
<addaction name="actionGPT"/>
|
||||||
|
</widget>
|
||||||
|
<addaction name="actionSecure_Boot_Support"/>
|
||||||
|
<addaction name="menuPartition_Style"/>
|
||||||
|
<addaction name="actionPartition_Configuration"/>
|
||||||
|
<addaction name="actionClear_Ventoy"/>
|
||||||
|
<addaction name="actionShow_All_Devices"/>
|
||||||
|
</widget>
|
||||||
|
<widget class="QMenu" name="menuLanguage">
|
||||||
|
<property name="title">
|
||||||
|
<string>Language</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<addaction name="menuOption"/>
|
||||||
|
<addaction name="menuLanguage"/>
|
||||||
|
</widget>
|
||||||
|
<action name="actionSecure_Boot_Support">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Secure Boot Support</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionMBR">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>MBR</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionGPT">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>GPT</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionPartition_Configuration">
|
||||||
|
<property name="text">
|
||||||
|
<string>Partition Configuration</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionClear_Ventoy">
|
||||||
|
<property name="text">
|
||||||
|
<string>Clear Ventoy</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionShow_All_Devices">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Show All Devices</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
47
LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h
Normal file
47
LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* ventoy_qt.h
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef __VENTOY_QT_H__
|
||||||
|
#define __VENTOY_QT_H__
|
||||||
|
|
||||||
|
int ventoy_disk_init(void);
|
||||||
|
void ventoy_disk_exit(void);
|
||||||
|
int ventoy_http_init(void);
|
||||||
|
void ventoy_http_exit(void);
|
||||||
|
int ventoy_log_init(void);
|
||||||
|
void ventoy_log_exit(void);
|
||||||
|
void *get_refresh_icon_raw_data(int *len);
|
||||||
|
void *get_secure_icon_raw_data(int *len);
|
||||||
|
void *get_window_icon_raw_data(int *len);
|
||||||
|
int ventoy_func_handler(const char *jsonstr, char *jsonbuf, int buflen);
|
||||||
|
const char * ventoy_code_get_cur_language(void);
|
||||||
|
int ventoy_code_get_cur_part_style(void);
|
||||||
|
void ventoy_code_set_cur_part_style(int style);
|
||||||
|
int ventoy_code_get_cur_show_all(void);
|
||||||
|
void ventoy_code_set_cur_show_all(int show_all);
|
||||||
|
void ventoy_code_set_cur_language(const char *lang);
|
||||||
|
void ventoy_code_save_cfg(void);
|
||||||
|
void ventoy_code_refresh_device(void);
|
||||||
|
int ventoy_code_is_busy(void);
|
||||||
|
int ventoy_code_get_percent(void);
|
||||||
|
int ventoy_code_get_result(void);
|
||||||
|
|
||||||
|
#endif /* __VENTOY_QT_H__ */
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user