Skip to content

Commit 326554f

Browse files
committed
2 parents 9796789 + ad33f2f commit 326554f

File tree

4 files changed

+45
-5
lines changed

4 files changed

+45
-5
lines changed

README.md

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,57 @@
1-
# BootShellCredentialProvider
1+
# BootShellCredentialProvider - Bringing Linux DEs to Windows
22

33
BSCP lets you boot Windows directly into a Linux desktop experience, using Windows' native Logon UI and a combination of Xming & WSL upon login.
44

5+
![](/login.PNG)
6+
![](/xfce.gif)
7+
![](/mate.gif)
8+
![](/kde.gif)
9+
10+
## Getting Started
11+
12+
Prerequisites:
13+
14+
- VcXsrv must be installed. This is a free Xming alternative that happens to be more stable and featured. It is available on chocolatey, otherwise: https://sourceforge.net/projects/vcxsrv/
15+
- Windows Subsystem for Linux, including the bash environment, is installed and working
16+
- You have some sense of which Linux DEs you'd like to explore and have installed them through WSL. See [here](https://github.com/NathanCastle/BootShellCredentialProvider/blob/master/BSCP/Configurator/wsl_setup.sh) for inspiration/a runnable script to do it for you. Note: doing everything in that file *should* work, but will take a long time regardless.
17+
18+
Installing & Configuring:
19+
20+
- Download and run the installer. Do not change any of the defaults; the defaults work.
21+
- Run BSCP Configurator (a shortcut in your Start Menu)
22+
- Configure the settings as desired. Note that the defaults should work with the environment created by the setup scritpt mentioned above.
23+
- In the unlikely event that BSCP Configurator crashes upon attempting to save, you have a permissions issue. Try running again as an administrator. If that doesn't work, you probably need to give yourself Full Control permissions on `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon`.
24+
- Sign out and behold!
25+
26+
Usage Notes:
27+
28+
- Ctrl+Alt+Del still works while in the Linux DEs. This is how you can sign out, start the Task Manager, etc.
29+
- Win+R does not work while Explorer is not running as the system Shell. Use Task Manager (through Ctrl+Alt+Del) to start Windows programs
30+
- There's a chance Windows Explorer (as file explorer, not shell) will run in the foreground when the DE starts. You can safely ignore or close it.
31+
- The uninstaller isn't particularly smart. You'll want to use the Configurator to disable the feature first, then run the uninstaller.
32+
- Once you've installed this, you'll want to use it as your primary way of logging in; It has no way of updating the shell settings if you log in through another Credential Provider (e.g. Pin logon or Windows Hello).
33+
34+
## About the Project
535
This project consists of several components:
636

737
- Configurator: friendly desktop app for modifying the configuration
838
- RegProvider: helper library for interacting with the registry (nothing special here)
939
- ConfigurableShell: Replaces the Windows Explorer Shell at boot time. Checks the registry settings and loads the specified desktop environment (Windows Explorer, XFCE, or whatever else you can get to work)
1040
- BootShellCredentialProvider: Plugin for WinLogon using the CredentialProvider v2 interface. This component shows you the available desktop environments and sets the selected one in the registry
1141

12-
Note: This project requires extensive modification to the registry to work and executes native code both before and after logging in. Use at own risk.
42+
## Risks, Security & Full Disclosure
1343

14-
Demo Pics:
44+
You probably shouldn't do this on anything resembling a production/mission-critical system, for several reasons:
1545

16-
![](/login.PNG)
17-
![](/desktop.PNG)
46+
- You're running my unmanaged c++ code inside WinLogon. If my code crashes, WinLogon crashes; you will not be able to use your PC if this happens.
47+
- My unmanaged code is handling your Windows password. This is borrowed from Microsoft's sample/template. Skepticism is encouraged.
48+
- Components of this system rely on weakening the security of various system registry keys. These are critical to Windows' ability to present a coherent desktop experience.
49+
- This is my second serious C++ project ever, and first with the Win32 API. Good luck.
50+
51+
## Contribution & Feedback
52+
53+
I'd appreciate any and all (constructive) feedback on this project, and will of course accept PRs. Feel free to file issues on this project if you have anything to share.
54+
55+
## Licensing
56+
57+
Most of this project is released under the MIT License. The Credential Provider component is released under the MS-LPL license because it is derived from the SampleV2CredentialProvider project.

kde.gif

1.34 MB
Loading

mate.gif

2.22 MB
Loading

xfce.gif

2.53 MB
Loading

0 commit comments

Comments
 (0)