Skip to content

Commit cc87f71

Browse files
committed
New features & improved analysis + AI service
1 parent dd8d093 commit cc87f71

19 files changed

Lines changed: 1662 additions & 223 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@ jobs:
3131
# Install dev dependencies if needed, or just run tests if they don't need extra
3232
3333
- name: Run Tests
34-
# If you have tests, run them. If not, this is a placeholder or check if tests folder exists
3534
run: |
36-
if [ -d "tests" ]; then
37-
python -m unittest discover tests
38-
else
39-
echo "No tests found"
40-
fi
35+
python -m unittest discover tests
36+
shell: bash
37+
38+
- name: Smoke Test (CLI)
39+
run: |
40+
python -m switchcraft.main --version
41+
python -m switchcraft.main --help
4142
shell: bash
4243

4344
build_check:

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,9 @@ out_debug_nocolor.txt
1212
config_test_output.txt
1313
debug_suite.txt
1414
/src/switchcraft/generators/__pycache__
15+
/src/switchcraft/__pycache__
16+
/src/switchcraft/__pycache__
17+
/src/switchcraft/services/__pycache__
18+
/src/switchcraft/__pycache__
19+
test_output.txt
20+
debug_ai_i18n.py

README.md

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44

55
[![GitHub all releases](https://img.shields.io/github/downloads/FaserF/SwitchCraft/total?color=blue&style=flat-square&logo=github&label=Downloads)](https://github.com/FaserF/SwitchCraft/releases)
66

7-
**SwitchCraft** is your ultimate utility for identifying silent installation parameters for EXE and MSI packages. Designed for IT Admins, Packagers, and Developers.
7+
**SwitchCraft is your comprehensive packaging assistant for IT Professionals. It goes beyond simple switch identification to streamline your entire application packaging workflow:
8+
9+
- 🔍 **Universal Analysis**: Instantly identify silent switches for EXE, MSI, and obscure installer frameworks.
10+
- 🤖 **AI-Powered Helper**: Get context-aware packaging advice and troubleshooting for Intune errors.
11+
- 📦 **Intune Ready**: Generate standardized PowerShell installation scripts automatically.
12+
- 🌍 **Cross-Platform**: Download and manage installers for Windows, Linux, and macOS.
13+
- 🛡️ **Integrity & Security**: Brute-force analysis for undocumented installers and file integrity checks.
14+
815

916
<div align="center">
1017
<img src="images/switchcraft_ui.png" alt="SwitchCraft UI" width="500" />
@@ -84,7 +91,15 @@ SwitchCraft-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART
8491
SwitchCraft-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DEBUGMODE
8592
```
8693

87-
**Silent Uninstall:** Use the same switches with the uninstaller from Add/Remove Programs.
94+
95+
**Silent Uninstall:**
96+
```powershell
97+
# Standard Silent Uninstall
98+
"%LOCALAPPDATA%\FaserF\SwitchCraft\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART
99+
100+
# Via SwitchCraft.ps1 Helper Script
101+
.\SwitchCraft.ps1 -InstallMode Uninstall
102+
```
88103

89104
#### Debug Logging Mode
90105
Enable verbose structured logging for troubleshooting or log analysis:
@@ -113,18 +128,45 @@ Debug output format:
113128
winget install FaserF.SwitchCraft
114129
```
115130

131+
#### CLI "One-Liner" (PowerShell)
132+
Install the latest version directly from your terminal:
133+
```powershell
134+
iex (irm https://raw.githubusercontent.com/FaserF/SwitchCraft/main/install.ps1)
135+
```
136+
137+
**Installer Script Parameters:**
138+
The install script supports several optional parameters:
139+
```powershell
140+
# Install specific version (e.g. v2025.12.1)
141+
.\install.ps1 -Version "v2025.12.1"
142+
143+
# Download Portable Version to Desktop instead of installing
144+
.\install.ps1 -Portable
145+
146+
# Silent Mode (for automated deployments)
147+
.\install.ps1 -Silent
148+
```
149+
116150
### Enterprise Deployment
117151

118-
SwitchCraft is enterprise-ready and supports management via:
119-
- **Group Policy (GPO)**: Using ADMX templates
120-
- **Microsoft Intune**: Using ADMX ingestion or custom OMA-URIs
121-
- **Registry**: Comprehensive configuration control
152+
SwitchCraft is completely ready for modern management:
153+
- **Intune Script Generation**: Automatically create `.intunewin` ready install/uninstall scripts (PowerShell) directly from the analysis result.
154+
- **MacOS Support**: Generate `install.sh` scripts and `.mobileconfig` profiles for Intune management of Mac apps.
155+
- **Custom Templates**: Use your own company-branded PowerShell templates for script generation (configure in Settings).
122156

123157
| Documentation | Description |
124158
|---------------|-------------|
125159
| [Registry Reference](docs/Registry.md) | All registry values and settings |
126160
| [GPO / Intune Policies](docs/PolicyDefinitions/README.md) | OMA-URI configuration and ADMX templates |
127161

162+
## 🍎 MacOS Support
163+
SwitchCraft runs on MacOS (build from source or use binary releases) and supports analysis of:
164+
- **.dmg** (Disk Images) - Detects mountable apps
165+
- **.pkg** (Installer Packages) - Extracts Package IDs and Version
166+
- **.app** (Bundles) - Reads Info.plist metadata
167+
168+
> **Note**: While the app runs on MacOS, "Silent Switch" detection is primarily a Windows concept. On MacOS, it helps generate deployment scripts.
169+
128170
> [!WARNING]
129171
> ### ⚠️ False Positive Virus Warnings
130172
>
@@ -183,10 +225,8 @@ Third-party AV software may flag SwitchCraft because:
183225

184226
1. **Check the source**: Download only from [GitHub Releases](https://github.com/FaserF/SwitchCraft/releases)
185227
2. **Verify the hash**: Compare SHA256 hash with the one published on the release page
186-
3. **Scan on VirusTotal**: Upload to [virustotal.com](https://www.virustotal.com) – expect 2-5 detections on new releases (these decrease over time)
187-
4. **Build from source**: Clone this repo and build yourself with `pyinstaller switchcraft.spec`
188-
189-
No Python installation required!
228+
3. **Scan on VirusTotal**: Upload to [virustotal.com](https://www.virustotal.com) – expect 2-5 detections on new releases (these decrease over time). If you see 30+ detections, it might be a real issue or modified file.
229+
4. **Build from source**: Clone this repo and build yourself with `pyinstaller switchcraft.spec`. No Python coding knowledge required!
190230

191231
### From Source
192232
```bash

0 commit comments

Comments
 (0)