Skip to content

M.UI_UX Upgrade

CoreSystem edited this page Jun 16, 2026 · 1 revision

STOP

Update: Dừng can thiệp sâu vào hệ thống module và sub-module của hệ thống OSDCloud nhằm đảm bảo
tính kế thừa giữa các phiên bản cũng như để đảm bảo maintain các file của dự án tùy biến đủ đơn
giản để duy trì

Below: for reference only

Giao diện TUI của phiên bản nâng cấp đã tương đối gọn gàng và phù hợp cho nhu cầu của đa số anh em làm nghề. Tuy nhiên, nền tảng bên dưới chạy tốt nếu có thể kết hợp được một giao diện bóng bẩy bên trên sẽ là tuyệt vời

  • Main Program re-design
  • Sub program (OS Selection) thay vì sử dụng giao diện xaml khó kiểm soát mặc định của OSDCloud

Khó khăn:

Tác gỉả sử dụng MainWindow.ps1 để gọi giao diện thiết kế MainWindow.xaml (quy định giao diện chính của chương trình) và trong cửa sổ ứng dụng tạo ra rất nhiều rào cản để can thiệp. Ngoài ra, do tính tương thích qua các phiên bản, nếu can thiệp trực tiếp vào hệ thống có sẵn sẽ khó lòng mang tính kế thừa cho các phiên bản sau này

Định hướng:

Ngoài giao diện chính Deploy-OSDCloud (bản GUI) thì hệ thống còn có một hệ thống đồng hành là Deploy-OSDCloud -CLI tức chạy cài đặt mặc định tự động theo dòng lệnh không qua sự lựa chọn OS của user

Flow: Khi IT gọi lệnh Deploy-OSDCloud -CLI

                                        => hệ thống sẽ tự động nhận lệnh để chạy mặc định ==workflow "Default"==

                                        => Ở workflow default này có 2 file cần quan tâm gồm

                                                - osdcloud.json quy định các bước chạy (step) của hệ thống

                                                - os-amd64.json quy định phiên bản OS mặc định gồm (build, edition, language, activation mode)

Khi đã hiểu flow này, chúng ta sẽ định hướng tạo một giao diện chọn lựa bổ sung (OS-Select dialog) cho người dùng chọn lựa các tham số OS cài đặt như đã nói trên. Khi nút "Start" được kích hoạt, một quy trình ngầm sẽ sửa đổi các tham số mặc định trong default workflow nói trên trước khi lệnh cài đặt chính thức Deploy-OSDCloud -CLI được gọi. Nhờ vậy ta có thể vừa bỏ qua không can thiệp trực tiếp giao diện chính của tác giả mà lại mở ra một giao diện khác sạch hơn, phù hợp nhu cầu hơn cho việc cài đặt

Tổ chức dữ liệu cho bản nâng cấp

X:\CoreSystem\SetupFiles (chứa unattend.xml và post-setup.ps1)  
X:\CoreSystem\OS-Select (chứa os-select.ps1 và os-select.xaml)  
X:\Windows\System32 (chứa main-system.ps1 và next-step.ps1)  
X:\Softwares (chứa các ứng dụng portable gọi tại màn hình chính gồm Explorer++, HWInfo64, Multidrive)

Flow:

1. User chọn chức năng cài hệ điều hành => gọi dialog os-select.ps1 => user chọn OS cài đặt => Bấm nút "Bắt đầu" => Hiện hộp thoại confirm việc cài đặt sẽ xóa ổ đĩa, có tiếp tục hay không?

2. User đồng ý => Tiến hành truyền tham số xuống /osdcloud.26.5.24.1/workflow/default Trong đó

  • Thư mục task có 2 file (osdcloud.json & osdcloud-nofirmware.json) không cần thao tác. Khi build WinPE sẽ chọn osdcloud-nofirmware.json làm mặc định
  • os-amd64.json => đổi các giá trị sẵn có bằng các tham số người dùng vừa chọn lựa

3. Check sự trùng khớp thông số trước khi tiến hành
4. Thực thi lệnh Powershell Deploy-OSDCloud -CLI
5. Khi lệnh cài đặt hoàn tất

  • Nếu là trường hợp user chọn cài tự động (gồm tweaks + apps) => gọi next-step.ps1 trong System32 thực thi khâu tiếp theo (gồm inject SetupsFiles và reboot máy)
  • Nếu là trường hợp user chọn cài OS mặc định theo Microsoft => wpeutil reboot

Clone this wiki locally