|
1 | | -# Swiss Army Knife Utility |
| 1 | +# S.A.K. Utility |
2 | 2 |
|
3 | | -A simple GUI tool for backing up important user folders (Contacts, Photos, Documents, Videos, Music, Desktop, Downloads) to a user-selected location on Windows. |
| 3 | +> **Swiss Army Knife (S.A.K.) Utility** – Your all-in-one desktop companion for **backups**, **file organization**, **duplicate removal**, and **license key scanning**, with **multi-threaded speed** and **cross-platform support** for Windows & macOS. |
4 | 4 |
|
5 | | -## Features |
| 5 | +--- |
6 | 6 |
|
7 | | -- Select a backup destination folder. |
8 | | -- One-click backup for each major user folder. |
9 | | -- Uses `xcopy` for fast, recursive copying. |
10 | | -- Built with PySide6 (Qt for Python). |
| 7 | +## ✨ Features |
11 | 8 |
|
12 | | -## Requirements |
| 9 | +### 🗂 Multi-User Backup System |
| 10 | +- **Smart folder structure**: Backups saved as `backup/<user>/<folder>` automatically. |
| 11 | +- **Blazing fast**: Multi-threaded file copying for large datasets. |
| 12 | +- **Directory hierarchy preserved**: Nested folders remain intact. |
| 13 | +- **Real-time progress**: Live percentage, speed, and file tracking. |
| 14 | +- **Cancel anytime**: Abort backups on demand. |
| 15 | +- **Detailed logs**: Every operation logged under `_logs/`. |
13 | 16 |
|
14 | | -- Python 3.x |
15 | | -- [PySide6](https://pypi.org/project/PySide6/) |
| 17 | +### 📂 Directory Organizer |
| 18 | +- **Auto-sort by file extension**: Group files into extension-based folders. |
| 19 | +- **Collision handling**: Automatically renames duplicates. |
| 20 | +- **Action logs**: Full record of all file moves. |
16 | 21 |
|
17 | | -Install dependencies: |
| 22 | +### 🔍 Duplicate File Finder |
| 23 | +- **Accurate MD5 detection**: Finds true duplicates regardless of name. |
| 24 | +- **Flexible actions**: Delete, move, or export reports. |
| 25 | +- **Safe deletions**: Keeps one original copy by default. |
| 26 | +- **Full logging**: Every action documented. |
| 27 | + |
| 28 | +### 🗝 License Key Scanner |
| 29 | +- **Windows Registry & macOS Plists**: Detects potential license keys. |
| 30 | +- **Admin prompt on Windows**: Elevation for deeper registry access. |
| 31 | +- **Multi-threaded scanning**: Faster results on large systems. |
| 32 | +- **Live progress bar**: Track scan percentage with cancel option. |
| 33 | +- **Exportable results**: Save keys & logs for future reference. |
| 34 | + |
| 35 | +### 🖥 Keep Screen Awake (Windows Only) |
| 36 | +- **Prevents system sleep**: Ideal for long-running backups. |
| 37 | +- **Fallback mode**: Cursor simulation if needed. |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## ⚡ Installation |
| 42 | + |
| 43 | +### Requirements |
| 44 | +- **Python 3.9+** |
| 45 | +- **PySide6** for GUI |
| 46 | +- **Windows** or **macOS** (Linux support planned) |
| 47 | + |
| 48 | +### Install dependencies |
18 | 49 | ```bash |
19 | 50 | pip install PySide6 |
20 | 51 | ``` |
21 | 52 |
|
22 | | -## Usage |
| 53 | +For Windows registry scanning: |
| 54 | +```bash |
| 55 | +pip install pywin32 |
| 56 | +``` |
| 57 | + |
| 58 | +### Run the app |
| 59 | +```bash |
| 60 | +python SAK_Utility_Full_With_MT_LicenseScan.py |
| 61 | +``` |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## 🚀 Usage Guide |
| 66 | + |
| 67 | +1. **Set Backup Location** → Choose where backups will be stored. |
| 68 | +2. **Select Users** → Pick user profiles to include in backups. |
| 69 | +3. **Start Backups** → One-click backups for Documents, Photos, etc. |
| 70 | +4. **Organize Folders** → Sort files by extension automatically. |
| 71 | +5. **Find Duplicates** → Delete, move, or export duplicate reports. |
| 72 | +6. **Scan License Keys** → With admin privileges for full registry access. |
| 73 | +7. **Keep Screen On** → Prevents sleep during long operations. |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## ⚠️ Known Issues |
| 78 | + |
| 79 | +- **License Key Limitations**: Many modern apps store keys in encrypted or cloud locations. |
| 80 | +- **Registry Access**: Some Windows registry keys remain inaccessible even with admin rights. |
| 81 | +- **macOS Plists**: Binary or encrypted plists may not reveal keys. |
| 82 | +- **Backup Speed**: Disk I/O limits speed on slow drives. |
| 83 | +- **Platform Differences**: Some features are Windows-only. |
23 | 84 |
|
24 | | -1. Open a terminal and navigate to the `Windows Backup` folder. |
25 | | -2. Run the script: |
26 | | - ```bash |
27 | | - python windows_backup.py |
28 | | - ``` |
29 | | -3. Click **Set Backup Location** and choose your backup destination. |
30 | | -4. Click any of the backup buttons (e.g., "Backup Documents") to back up that folder. |
| 85 | +--- |
31 | 86 |
|
32 | | -## Notes |
| 87 | +## 🔮 Future Enhancements |
33 | 88 |
|
34 | | -- The script uses `xcopy`, which is available on Windows systems. |
35 | | -- Each backup creates a subfolder in your backup location with the same name as the source (e.g., "Documents"). |
36 | | -- Make sure you have permission to read the source folders and write to the backup location. |
| 89 | +- **Modern GUI**: Tabs, dark mode, and custom themes. |
| 90 | +- **Backup Scheduler**: Automate recurring backups. |
| 91 | +- **Cloud Integration**: Direct backups to Google Drive, OneDrive, Dropbox. |
| 92 | +- **Thread Control**: User-defined thread limits. |
| 93 | +- **Integrated Log Viewer**: Read logs inside the app. |
| 94 | +- **Linux Support**: Extend compatibility to Linux systems. |
| 95 | +- **Incremental Backups**: Copy only changed files after first backup. |
37 | 96 |
|
38 | | -## Disclaimer |
| 97 | +--- |
39 | 98 |
|
40 | | -Always verify your backups. The author is not responsible for any data loss. |
| 99 | +## 📜 License |
41 | 100 |
|
42 | | -## Created By: |
43 | | -- Randy Northrup |
| 101 | +This project is provided under the **MIT License** – use, modify, and distribute freely. |
0 commit comments