OSDeploy / OSD

OSD Shared Functions
MIT License
132 stars 54 forks source link

Custom Install.swim should be recognized in OS Folder. #99

Closed Abe-Telo closed 5 months ago

Abe-Telo commented 6 months ago

Is your feature request related to a problem? Please describe. Some Surfaces such as book and sometimes other models, (possible Related to firmware that have not bean updated) fail installation. (claim a unexpected failure caused windows to crash during setup ) Some message like that.

In some instances, I want to run my own custom swim imges from MS that Microsoft recommends. Microsoft Provides specific packaged OS for their surface devices that should cover most issues.

Describe the solution you'd like Have my own custom swim files added in the OS.

Describe alternatives you've considered I have tried converting Swim files to the following format with fail, ISO, Wim, ESD. ( Based on my research, it had to do with the locked Swim file Microsoft uses? )

Additional context So i was thinking of maybe either just being able to drop Swim and wim files into the OS folder or have away to convert Swim and wim to ESD format. Part of the issue with Microsoft surface recovery are that it comes with a zip file, different than any os. The custom IMG should be able to reset its firmware TPM. And fix any issues that i might have with firmware.

gwblok commented 6 months ago

No plans to support .SWIM files. I also have no way to test this to do any development.

Projects created to support Surface Recovery: https://techcommunity.microsoft.com/t5/surface-it-pro-blog/open-source-image-deployment-tool-released-on-github/ba-p/1314115

Other MS Surface Management tools, check out the MS Section: https://www.recastsoftware.com/resources/configmgr-docs/configmgr-topics/manufacturer-tools/

gwblok commented 6 months ago

Ok, I take that back... I'm curious... I'll need help testing though, you up for that? @Abe-Telo

https://support.microsoft.com/en-us/surface-recovery-image

I think the process would be something like... On the OSDCloud USB, you'd create a folder structure like \OSDCloud\OS\SurfaceBook2_BMR_15_11.8.2

You download the Recovery Zip File, Example Surface Book 2 = SurfaceBook2_BMR_15_11.8.2.zip and extract the install.swm files to the OSDCloudUSB\OSDCloud\OS\SurfaceBook2_BMR_15_11.8.2 folder

OSDCloud would look for SWM files in the OS folder (recurse) and populate the menu using the Folder Name as part of the description in the drop down, as "install.swm" doesn't tell you much.

This is just me thinking through things in my head, I'll mess around a bit and see what I can come up with.

gwblok commented 6 months ago

First test is looking good... I'm actually restoring the Surface Book 2 install.swm files to my HP test machine. It expanded the image properly (install.swm, install2.swm, install3.swm) and booted into Windows 10 22H2 Pro.

I'll keep working on it, and if things continue well, and I didn't break anything else, you should see this feature in Late Jan / Early Feb

Question @Abe-Telo , how do you launch OSDCloud? Via the GUI or via PowerShell Command Line?

gwblok commented 6 months ago

This is now live in the latest module release. Please test by using Start-OSDCloudGUIDev

If you have a successful test, I'll promote the code into the production Start-OSDCloudGUI interface.

Abe-Telo commented 5 months ago

\OSDCloud\OS\SurfaceBook2_BMR_15_11.8.2

Hi, sorry seeing this now, I almost gave up and started getting 20 new annoying USB. I am glad there is away, i will test this Monday at work. I have a 250GB USB stick waiting for me. If this works, I can put all USB swim files in one USB. I will let you know results in a few days.

To confirm, all i need are those 3 Swim files directly in the OS folder and nothing else? Correct?

Abe-Telo commented 5 months ago

I can confirm that it indeed worked, although I cannot confirm that TPM is cleared after install. Thank you for implementing this.

gwblok commented 5 months ago

Thanks for testing. I honestly don't see how the process would clear the TPM, typically that's another step, and requires user approval to clear.

I'm considering this request closed. Thanks for the suggestion, it was fun to implement.