Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dfci support for using a QemuQ35Pkg virtual system as the device under test #84

Merged
merged 14 commits into from
Apr 28, 2023

Conversation

mikeytdisco
Copy link
Contributor

Description

Fixes #83.

This is all changes to the Dfci UnitTest and Docs directories. There is no change to DFCI functionality.

Quite a number of little changes needed to support Dfci in a QemuQ35Pkg virtual system. The Q35 environment has fewer settings, so there are fewer settings tested in the Enroll/Unenroll operations. Due to a pending restructure of the settings test, the current settings test will fail due to settings not in Q35. All the other tests have been tested.

The restart mechanism needed to be updated to not rely on ping. Since ping isn't forwarded to Q35, Q35 appeared to never go away.

DFCI_SupportLib.py needed a lot of changes to pass flake8.

This PR will need additional testing using a physical system.

  • Impacts functionality?

  • Impacts security?

  • Breaking change?

This PR will need additional testing using a physical system to ensure the new restart detections mechanism still works.

  • Includes tests?

  • Includes documentation?

How This Was Tested

Tested with a QemuQ35Pkg virtual system.

Integration Instructions

N/A

@github-actions github-actions bot added language:python Pull requests that update Python code impact:breaking-change Requires integration attention impact:non-functional Does not have a functional impact impact:testing Affects testing type:documentation Improvements or additions to documentation labels Apr 16, 2023
DfciPkg/Docs/QemuQ35Pkg/ReadMe.md Outdated Show resolved Hide resolved

1. Knowledge that the sub directory DfciDutFiles is used for both the build and run scripts for
Q35, the emulated USB drives used to install windows, and setup the DFCI Test solution into the QemuQ35Pkg VM.
2. An install image for Windows 11 (available when you purchase a license for Windows 11).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe it is possible to download a windows 11 iso without a valid license. Is the license required to enable DFCI support?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's definitely possible to use windows 11 without a valid license - not sure about DFCI though

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just following the party line. I don't think I should be the one publishing workarounds, even though there are some that are published - and the work arounds have to change as release of Windows change. As for DFCI, there is no special license for use.

DfciPkg/Docs/QemuQ35Pkg/ReadMe.md Outdated Show resolved Hide resolved
@apop5 apop5 requested a review from Flickdm April 22, 2023 15:36

1. Knowledge that the sub directory DfciDutFiles is used for both the build and run scripts for
Q35, the emulated USB drives used to install windows, and setup the DFCI Test solution into the QemuQ35Pkg VM.
2. An install image for Windows 11 (available when you purchase a license for Windows 11).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's definitely possible to use windows 11 without a valid license - not sure about DFCI though

@makubacki makubacki merged commit 3bfb66d into microsoft:main Apr 28, 2023
ProjectMuBot referenced this pull request in microsoft/mu_tiano_platforms Apr 29, 2023
Introduces 11 new commits in [Features/DFCI](https://github.com/microsoft/mu_feature_dfci).

<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/6fcec9559af28347bc0fbf02e6d9c3e605dc7b5d">6fcec9</a> Repo File Sync: synced file(s) with microsoft/mu_devops (<a href="https://github.com/microsoft/mu_feature_dfci/pull/59">#59</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/a8afe579ce224d1776094a81baf6fcefcc899076">a8afe5</a> Repo File Sync: synced file(s) with microsoft/mu_devops (<a href="https://github.com/microsoft/mu_feature_dfci/pull/82">#82</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/9d9b736203e986081f6d5144e1dfeecf721f20f1">9d9b73</a> pip: bump edk2-pytool-library from 0.14.0 to 0.14.1 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/68">#68</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/725ce1fa497dffa9fffec80266be28edc62db042">725ce1</a> pip: bump edk2-basetools from 0.1.40 to 0.1.43 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/79">#79</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/da81bba00cace2b2ad2795c7ed4a37d46c62681f">da81bb</a> pip: bump edk2-pytool-extensions from 0.22.2 to 0.23.0 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/85">#85</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/c8d699002d4945bacc0ef3f799df6bdbddd87998">c8d699</a> Repo File Sync: Update to Mu DevOps 2.4.0 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/86">#86</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/cde24ee10147075fc399dfb15c6888218622f135">cde24e</a> pip: bump edk2-basetools from 0.1.43 to 0.1.44 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/87">#87</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/f01e1cb0e31e4821b07b93b87eeeb3b3e510f396">f01e1c</a> pip: bump edk2-basetools from 0.1.44 to 0.1.45 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/88">#88</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/507a1a2c279bfd3333947cdd8428bc518c1ecb07">507a1a</a> Repo File Sync: Update Fedora 37 container f1c7a20 from to 3b3eb8f (<a href="https://github.com/microsoft/mu_feature_dfci/pull/89">#89</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/f6b55cd74d2e76b9d2073eeb333803e60e8e051c">f6b55c</a> Repo File Sync: Always publish logs in CodeQL workflow, fix container safe dir, add issue assignment workflow (<a href="https://github.com/microsoft/mu_feature_dfci/pull/90">#90</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/3bfb66d4d3d89226be4ff6cb4d1050206b0f6f9d">3bfb66</a> Dfci support for using a QemuQ35Pkg virtual system as the device under test (<a href="https://github.com/microsoft/mu_feature_dfci/pull/84">#84</a>)</li>
</ul>
</details>

Signed-off-by: Project Mu Bot <[email protected]>
makubacki referenced this pull request in microsoft/mu_tiano_platforms May 1, 2023
Introduces 11 new commits in [Features/DFCI](https://github.com/microsoft/mu_feature_dfci).

<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/6fcec9559af28347bc0fbf02e6d9c3e605dc7b5d">6fcec9</a> Repo File Sync: synced file(s) with microsoft/mu_devops (<a href="https://github.com/microsoft/mu_feature_dfci/pull/59">#59</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/a8afe579ce224d1776094a81baf6fcefcc899076">a8afe5</a> Repo File Sync: synced file(s) with microsoft/mu_devops (<a href="https://github.com/microsoft/mu_feature_dfci/pull/82">#82</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/9d9b736203e986081f6d5144e1dfeecf721f20f1">9d9b73</a> pip: bump edk2-pytool-library from 0.14.0 to 0.14.1 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/68">#68</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/725ce1fa497dffa9fffec80266be28edc62db042">725ce1</a> pip: bump edk2-basetools from 0.1.40 to 0.1.43 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/79">#79</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/da81bba00cace2b2ad2795c7ed4a37d46c62681f">da81bb</a> pip: bump edk2-pytool-extensions from 0.22.2 to 0.23.0 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/85">#85</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/c8d699002d4945bacc0ef3f799df6bdbddd87998">c8d699</a> Repo File Sync: Update to Mu DevOps 2.4.0 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/86">#86</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/cde24ee10147075fc399dfb15c6888218622f135">cde24e</a> pip: bump edk2-basetools from 0.1.43 to 0.1.44 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/87">#87</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/f01e1cb0e31e4821b07b93b87eeeb3b3e510f396">f01e1c</a> pip: bump edk2-basetools from 0.1.44 to 0.1.45 (<a href="https://github.com/microsoft/mu_feature_dfci/pull/88">#88</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/507a1a2c279bfd3333947cdd8428bc518c1ecb07">507a1a</a> Repo File Sync: Update Fedora 37 container f1c7a20 from to 3b3eb8f (<a href="https://github.com/microsoft/mu_feature_dfci/pull/89">#89</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/f6b55cd74d2e76b9d2073eeb333803e60e8e051c">f6b55c</a> Repo File Sync: Always publish logs in CodeQL workflow, fix container safe dir, add issue assignment workflow (<a href="https://github.com/microsoft/mu_feature_dfci/pull/90">#90</a>)</li>
<li><a href="https://github.com/microsoft/mu_feature_dfci/commit/3bfb66d4d3d89226be4ff6cb4d1050206b0f6f9d">3bfb66</a> Dfci support for using a QemuQ35Pkg virtual system as the device under test (<a href="https://github.com/microsoft/mu_feature_dfci/pull/84">#84</a>)</li>
</ul>
</details>

Signed-off-by: Project Mu Bot <[email protected]>
makubacki referenced this pull request in microsoft/mu_tiano_platforms May 1, 2023
Bumps Features/DFCI from `2.3.1` to `3.0.0`

Introduces 11 new commits in
[Features/DFCI](https://github.com/microsoft/mu_feature_dfci).

<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/6fcec9559af28347bc0fbf02e6d9c3e605dc7b5d">6fcec9</a>
Repo File Sync: synced file(s) with microsoft/mu_devops (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/59">#59</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/a8afe579ce224d1776094a81baf6fcefcc899076">a8afe5</a>
Repo File Sync: synced file(s) with microsoft/mu_devops (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/82">#82</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/9d9b736203e986081f6d5144e1dfeecf721f20f1">9d9b73</a>
pip: bump edk2-pytool-library from 0.14.0 to 0.14.1 (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/68">#68</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/725ce1fa497dffa9fffec80266be28edc62db042">725ce1</a>
pip: bump edk2-basetools from 0.1.40 to 0.1.43 (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/79">#79</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/da81bba00cace2b2ad2795c7ed4a37d46c62681f">da81bb</a>
pip: bump edk2-pytool-extensions from 0.22.2 to 0.23.0 (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/85">#85</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/c8d699002d4945bacc0ef3f799df6bdbddd87998">c8d699</a>
Repo File Sync: Update to Mu DevOps 2.4.0 (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/86">#86</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/cde24ee10147075fc399dfb15c6888218622f135">cde24e</a>
pip: bump edk2-basetools from 0.1.43 to 0.1.44 (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/87">#87</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/f01e1cb0e31e4821b07b93b87eeeb3b3e510f396">f01e1c</a>
pip: bump edk2-basetools from 0.1.44 to 0.1.45 (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/88">#88</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/507a1a2c279bfd3333947cdd8428bc518c1ecb07">507a1a</a>
Repo File Sync: Update Fedora 37 container f1c7a20 from to 3b3eb8f (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/89">#89</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/f6b55cd74d2e76b9d2073eeb333803e60e8e051c">f6b55c</a>
Repo File Sync: Always publish logs in CodeQL workflow, fix container
safe dir, add issue assignment workflow (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/90">#90</a>)</li>
<li><a
href="https://github.com/microsoft/mu_feature_dfci/commit/3bfb66d4d3d89226be4ff6cb4d1050206b0f6f9d">3bfb66</a>
Dfci support for using a QemuQ35Pkg virtual system as the device under
test (<a
href="https://github.com/microsoft/mu_feature_dfci/pull/84">#84</a>)</li>
</ul>
</details>

Signed-off-by: Project Mu Bot <[email protected]>
Flickdm pushed a commit to microsoft/mu_tiano_platforms that referenced this pull request May 26, 2023
## Description

Fixes #470.

PRE-REQ. This PR requires the following PR's before this one will work
correctly:
#473
#471
microsoft/mu_feature_dfci#84

This PR will have to bump DfciPkg to include PR 84 above before it is
completed.

This change adds the prereqs for DFCI - that is, platform specific
libraries required to interface between DFCI and a particular platform.
The required DFCI libraries are in PR 471. A convenience PR for booting
to FrontPage or with certain USB device mounted is also require (PR
473).

- [x] Impacts functionality?

- [ ] Impacts security?

- [ ] Breaking change?

- [ ] Includes tests?

- [x] Includes documentation?


## How This Was Tested

With all of the prerequisites included, a Q35 Virtual System was used to
run the Dfci End to End UnitTest with satisfactory results. That is, all
of the test cases ran will full success except Dfci_IntuneSettings -
which exhibits some know errors. This is not fixed due to another
pending change.

## Integration Instructions

N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact:breaking-change Requires integration attention impact:non-functional Does not have a functional impact impact:testing Affects testing language:python Pull requests that update Python code type:documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature]: Support QemuQ35Pkg virtual system for testing the Dfci Test cases
4 participants