feat: initial commit — org profile README, shared configs, scripts

This commit is contained in:
MR CYBER
2026-07-12 18:34:24 -07:00
commit 755b036f53
8 changed files with 617 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
# These are supported funding model platforms
github: [gshellmr-code]
custom:
- https://buymeacoffee.com/mrcyberdev
+155
View File
@@ -0,0 +1,155 @@
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../wsa-installer/assets/logo-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="../wsa-installer/assets/logo-light.svg">
<img alt="WSA Installer" src="../wsa-installer/assets/logo-light.svg" width="120">
</picture>
# WSA Installer
### The Modern Windows Subsystem for Android Installation & Management Toolkit
![Organization](https://img.shields.io/badge/Organization-WSA--Installer-1B72C0?style=for-the-badge&logo=github)
![Repositories](https://img.shields.io/badge/Repositories-3-1B72C0?style=for-the-badge)
![License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)
![GitHub Sponsors](https://img.shields.io/badge/Sponsor-❤️-ff69b4?style=for-the-badge)
[Website](https://wsa-installer.github.io) · [Download](https://github.com/WSA-Installer/wsa-installer/releases/latest) · [Documentation](https://wsa-installer.github.io/docs/) · [YouTube](https://www.youtube.com/@AT_Tech_Zone)
</div>
---
## Our Mission
Provide an easy, powerful, and reliable way to install, repair, update, customize, and manage Windows Subsystem for Android (WSA) with Google Play Store on Windows 10 and Windows 11 — with a beautiful, intuitive interface and advanced automation.
## Projects
| Repository | Description | Status |
|:-----------|:------------|:-------|
| **[wsa-installer](https://github.com/WSA-Installer/wsa-installer)** | Main installer application — one-click WSA + Play Store setup with background service, self-update, repair, and file sharing | ![Active](https://img.shields.io/badge/Active-3DDC84?style=flat-square) |
| **[wsa-webdav](https://github.com/WSA-Installer/wsa-webdav)** | Headless Android WebDAV server APK for WSA — access your Android file system from any browser | ![Active](https://img.shields.io/badge/Active-3DDC84?style=flat-square) |
| **[wsa-website](https://github.com/WSA-Installer/wsa-website)** | Official website — landing page, documentation, download hub | ![Active](https://img.shields.io/badge/Active-3DDC84?style=flat-square) |
## Features
| Feature | Description |
|:--------|:------------|
| Smart System Scan | Detects VT-x/AMD-V, Hyper-V, VirtualMachinePlatform, HypervisorPlatform, WSL via 5 detection methods |
| One-Click Install | Handles download, extraction, configuration, and registration of WSA end-to-end |
| Play Store Integration | Patches Google Apps (MindTheGapps 13.0) with automated ADB authorization |
| Background Service | `WSABackgroundService` monitors WSA status, manages SDK lifecycle, auto-restarts on failure |
| Self-Update | Checks server for updates with 30-chunk parallel download and silent install |
| Repair & Uninstall | Complete WSA management with backup, repair, and clean uninstall flows |
| File Sharing | WebDAV-based drive mounting — access WSA files as Windows network drives |
| Glass Transparency | Modern Windows 11-inspired UI with configurable alpha-blended transparency |
| Remote Config | Server-side configuration updates via Rust security gateway |
| NSIS Installer | Professional Windows setup wizard with maintenance mode |
## Technology Stack
```
┌──────────────────────────────────────────────────────────────┐
│ Technology Stack │
├──────────────────────────────────────────────────────────────┤
│ Python 3.14 │ Flet UI Framework │ Rust Native (.pyd) │
│ PyQt6 │ PyInstaller │ Nuitka Compiler │
│ NSIS │ ADB │ Windows Services │
│ Kotlin │ Android SDK │ WebDAV Protocol │
└──────────────────────────────────────────────────────────────┘
```
## Quick Start
### Download
| File | Size | Description |
|:-----|:-----|:------------|
| [WSA_Installer_Setup.exe](https://github.com/WSA-Installer/wsa-installer/releases/latest) | ~228 MB | Professional NSIS installer |
| [bundle.wsa](https://github.com/WSA-Installer/wsa-installer/releases/latest) | ~1.21 GB | Pre-packaged WSA bundle (optional) |
### Install
1. Download `WSA_Installer_Setup.exe` from the [latest release](https://github.com/WSA-Installer/wsa-installer/releases/latest)
2. Right-click → **Run as administrator**
3. Follow the 5-step wizard: **Intro → Check → Install → Play Store → Complete**
### CLI
```cmd
WSA_Installer_Setup.exe /S :: Silent install
WSA_Installer_Setup.exe --repair-wsa :: Repair WSA
WSA_Installer_Setup.exe --uninstall :: Uninstall WSA
WSA_Installer_Setup.exe --file-sharing :: File sharing setup
```
## Architecture
```mermaid
graph TB
subgraph "WSA Installer"
GUI[Flet GUI<br/>5-Step Wizard]
IL[InstallerLogic<br/>Core Engine]
RC[RemoteConfigManager<br/>Server Sync]
BG[WSABackgroundService<br/>Windows Service]
end
subgraph "Native Modules"
WU[widget_ui.pyd<br/>Rust Security Gateway]
PS[playstore_patcher_mem.pyd<br/>Play Store SDK]
end
subgraph "External"
ADB[ADB Bridge]
WSA[Windows Subsystem<br/>for Android]
PY[Embedded Python 3.14]
end
GUI --> IL
IL --> RC
IL --> WU
IL --> PS
IL --> ADB
ADB --> WSA
PS --> PY
BG --> WSA
RC --> WU
```
## Supported Platforms
| OS | Status |
|:---|:-------|
| Windows 11 22H2+ | ![Supported](https://img.shields.io/badge/Supported-3DDC84?style=flat-square) |
| Windows 11 21H2 | ![Supported](https://img.shields.io/badge/Supported-3DDC84?style=flat-square) |
| Windows 10 2004+ (build 19041) | ![Supported](https://img.shields.io/badge/Supported-3DDC84?style=flat-square) |
| Windows 10 < 19041 | ![Not Supported](https://img.shields.io/badge/Not%20Supported-red?style=flat-square) |
## Community
| Channel | Link |
|:--------|:-----|
| YouTube | [@AT_Tech_Zone](https://www.youtube.com/@AT_Tech_Zone) |
| Buy Me a Coffee | [mrcyberdev](https://buymeacoffee.com/mrcyberdev) |
| GitHub Issues | [Report a Bug](https://github.com/WSA-Installer/wsa-installer/issues/new?template=bug_report.yml) |
| GitHub Discussions | [Ask a Question](https://github.com/WSA-Installer/wsa-installer/discussions) |
## Contributing
We welcome contributions! See our [Contributing Guide](https://github.com/WSA-Installer/wsa-installer/blob/main/CONTRIBUTING.md) for details.
## License
This project is licensed under the **MIT License** — see [LICENSE](https://github.com/WSA-Installer/wsa-installer/blob/main/LICENSE) for details.
---
<div align="center">
**Built with care by [AT Tech Zone](https://www.youtube.com/@AT_Tech_Zone) — MR CYBER**
![Footer](https://img.shields.io/badge/©_2026_AT_Tech_Zone-1B72C0?style=for-the-badge)
</div>
+17
View File
@@ -0,0 +1,17 @@
# Default owners for everything in the repo
# Each line is a file pattern followed by one or more owners
# Global owners
* @gshellmr-code
# Build pipeline
build/ @gshellmr-code
*.nsi @gshellmr-code
*.spec @gshellmr-code
# Native modules
native/ @gshellmr-code
# Documentation
docs/ @gshellmr-code
*.md @gshellmr-code
+118
View File
@@ -0,0 +1,118 @@
# Branch and Commit Convention
This document describes the branch naming and commit message conventions for WSA Installer.
## Branch Naming
### Format
```
<type>/<short-description>
```
### Types
| Type | Description | Example |
|:-----|:------------|:--------|
| `feature` | New feature | `feature/add-version-manager` |
| `fix` | Bug fix | `fix/adb-connection-timeout` |
| `docs` | Documentation | `docs/update-installation-guide` |
| `refactor` | Code refactoring | `refactor/simplify-download-logic` |
| `perf` | Performance | `perf/optimize-chunk-download` |
| `test` | Tests | `test/add-installer-logic-tests` |
| `build` | Build system | `build/update-nsis-script` |
| `ci` | CI/CD | `ci/add-release-workflow` |
| `release` | Release prep | `release/v1.3.0` |
| `hotfix` | Critical fix | `hotfix/fix-service-crash` |
### Examples
```
feature/add-version-manager
fix/adb-connection-timeout
docs/update-installation-guide
release/v1.3.0
hotfix/fix-service-crash
```
## Commit Messages
### Format
```
<type>(<scope>): <description>
[optional body]
[optional footer]
```
### Types
| Type | Description |
|:-----|:------------|
| `feat` | New feature |
| `fix` | Bug fix |
| `docs` | Documentation changes |
| `style` | Code style changes (formatting, etc.) |
| `refactor` | Code refactoring |
| `perf` | Performance improvements |
| `test` | Adding or updating tests |
| `build` | Build system changes |
| `ci` | CI/CD changes |
| `chore` | Maintenance tasks |
### Scopes
| Scope | Description |
|:------|:------------|
| `installer` | Main installer |
| `service` | Background service |
| `webdav` | File sharing |
| `ui` | User interface |
| `build` | Build pipeline |
| `docs` | Documentation |
### Examples
```
feat(installer): add parallel chunked download with resume
fix(service): resolve WSA port detection timeout
docs(readme): update installation guide
build(nsis): add silent install support
refactor(installer): simplify extract_7z function
perf(download): optimize chunk merging
test(installer): add download resume tests
```
### Breaking Changes
For breaking changes, add `BREAKING CHANGE:` in the footer:
```
feat(api): change config endpoint response format
BREAKING CHANGE: config response now uses nested structure
```
## Pull Requests
### Title Format
```
<type>(<scope>): <description>
```
### Description
- What does this PR do?
- Why is this change needed?
- How was this tested?
### Checklist
- [ ] Code follows project style
- [ ] Self-review completed
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] No breaking changes (or documented)
+79
View File
@@ -0,0 +1,79 @@
{
"labels": [
{ "name": "bug", "color": "d73a4a", "description": "Something isn't working" },
{ "name": "enhancement", "color": "a2eeef", "description": "New feature or request" },
{ "name": "documentation", "color": "0075ca", "description": "Improvements or additions to documentation" },
{ "name": "good first issue", "color": "7057ff", "description": "Good for newcomers" },
{ "name": "help wanted", "color": "008672", "description": "Extra attention is needed" },
{ "name": "question", "color": "d876e3", "description": "Further information is requested" },
{ "name": "wontfix", "color": "ffffff", "description": "This will not be worked on" },
{ "name": "duplicate", "color": "cfd3d7", "description": "This issue already exists" },
{ "name": "installation", "color": "fbca04", "description": "Related to installation process" },
{ "name": "wsa", "color": "1a7f37", "description": "Related to WSA core" },
{ "name": "play-store", "color": "3DDC84", "description": "Related to Play Store integration" },
{ "name": "background-service", "color": "0078D4", "description": "Related to WSABackgroundService" },
{ "name": "file-sharing", "color": "6f42c1", "description": "Related to WebDAV file sharing" },
{ "name": "ui", "color": "e4e669", "description": "Related to GUI/interface" },
{ "name": "build", "color": "bfd4f2", "description": "Related to build pipeline" },
{ "name": "security", "color": "ee0701", "description": "Security-related issue" },
{ "name": "priority:high", "color": "b60205", "description": "High priority" },
{ "name": "priority:medium", "color": "fbca04", "description": "Medium priority" },
{ "name": "priority:low", "color": "0e8a16", "description": "Low priority" },
{ "name": "triage", "color": "ededed", "description": "Needs initial review" }
],
"milestones": [
{
"title": "v1.3.0",
"description": "Next release — new features",
"state": "open"
},
{
"title": "v1.2.x",
"description": "Bug fixes and patches",
"state": "open"
},
{
"title": "Documentation",
"description": "Documentation improvements",
"state": "open"
},
{
"title": "Website",
"description": "GitHub Pages website",
"state": "open"
},
{
"title": "Testing",
"description": "Test coverage improvements",
"state": "open"
}
],
"discussions_categories": [
{
"name": "Ideas",
"description": "Feature ideas and suggestions",
"slug": "ideas"
},
{
"name": "Q&A",
"description": "Questions and answers",
"slug": "q-a"
},
{
"name": "Announcements",
"description": "Official announcements",
"slug": "announcements",
"announcement": true
},
{
"name": "General",
"description": "General discussion",
"slug": "general"
},
{
"name": "Show and Tell",
"description": "Showcase your WSA setup",
"slug": "show-and-tell"
}
]
}
+68
View File
@@ -0,0 +1,68 @@
# WSA Installer — Release Notes Template
Use this template when creating GitHub releases.
---
## Release v{VERSION}
### Highlights
- [Feature/highlight 1]
- [Feature/highlight 2]
- [Feature/highlight 3]
### What's Changed
#### Features
- [Feature 1] by @contributor
- [Feature 2] by @contributor
#### Bug Fixes
- [Fix 1] by @contributor
- [Fix 2] by @contributor
#### Documentation
- [Doc 1] by @contributor
#### Other Changes
- [Change 1] by @contributor
### Downloads
| File | Size | SHA256 |
|:-----|:-----|:-------|
| `WSA_Installer_Setup.exe` | ~228 MB | [hash] |
| `bundle.wsa` | ~1.21 GB | [hash] |
### Installation
1. Download `WSA_Installer_Setup.exe`
2. Run as administrator
3. Follow the 5-step wizard
### Upgrade
Existing users can upgrade via the built-in self-update feature, or download the latest release.
### Known Issues
- [Known issue 1]
- [Known issue 2]
### Full Changelog
See [CHANGELOG.md](https://github.com/WSA-Installer/wsa-installer/blob/main/CHANGELOG.md) for the complete changelog.
### Credits
Thanks to all contributors who helped with this release!
---
**SHA256 Checksums:**
```
{SHA256_HASH} WSA_Installer_Setup.exe
{SHA256_HASH} bundle.wsa
```
+97
View File
@@ -0,0 +1,97 @@
# Release Strategy
This document describes the release process for WSA Installer repositories.
## Versioning
WSA Installer follows [Semantic Versioning](https://semver.org/):
```
MAJOR.MINOR.PATCH
```
- **MAJOR** — Breaking changes or major rewrites
- **MINOR** — New features (backward compatible)
- **PATCH** — Bug fixes (backward compatible)
### Current Version
- **App Version:** 1.2.0.0
- **WSA Build:** 2407.40000.4.0
## Release Cadence
| Type | Frequency | Description |
|:-----|:----------|:------------|
| Major | As needed | Breaking changes, major features |
| Minor | Monthly | New features, improvements |
| Patch | Weekly (as needed) | Bug fixes, security updates |
## Release Process
### 1. Prepare Release
1. Create a `release/v{VERSION}` branch from `main`
2. Update version numbers in:
- `app.py``APP_ID` suffix
- `file_version_info.txt` — Version strings
- `WSA_Installer_Setup.nsi``APP_VERSION`
- `README.md` — Badge version
3. Update `CHANGELOG.md` with release notes
4. Update `ROADMAP.md` if needed
### 2. Test
1. Run the full build: `build.bat`
2. Test on Windows 10 and Windows 11
3. Test all flows: install, repair, uninstall, update
4. Test Play Store integration
5. Test background service
6. Test file sharing
### 3. Create Release
1. Merge `release/v{VERSION}` into `main`
2. Create a GitHub Release with tag `v{VERSION}`
3. Upload artifacts:
- `WSA_Installer_Setup.exe`
- `bundle.wsa`
4. Use the release notes template
5. Publish the release
### 4. Post-Release
1. Update the website with new version
2. Announce on YouTube
3. Update documentation if needed
## Artifact Hashes
Always include SHA256 checksums in release notes:
```bash
# Windows PowerShell
Get-FileHash WSA_Installer_Setup.exe -Algorithm SHA256
Get-FileHash bundle.wsa -Algorithm SHA256
```
## Release Notes
Use the [release notes template](release-notes-template.md) for consistency.
## Hotfixes
For critical bugs:
1. Create a `hotfix/v{VERSION}` branch from `main`
2. Fix the bug
3. Test thoroughly
4. Create a patch release
5. Skip the monthly cycle if urgent
## Branch Protection
- `main` — Protected, requires PR review
- `release/*` — Protected, requires PR review
- `feature/*` — Unprotected, delete after merge
- `fix/*` — Unprotected, delete after merge
+78
View File
@@ -0,0 +1,78 @@
# GitHub Labels Setup Script
# Run this script to set up labels, milestones, and discussions categories
# for your GitHub repositories using the GitHub CLI (gh).
# Prerequisites:
# - GitHub CLI (gh) installed and authenticated
# - Repository created on GitHub
# Usage:
# .\setup-labels.ps1 <owner/repo>
param(
[Parameter(Mandatory=$true)]
[string]$Repo
)
Write-Host "Setting up labels for $Repo..." -ForegroundColor Cyan
# Labels
$labels = @(
@{ name="bug"; color="d73a4a"; description="Something isn't working" },
@{ name="enhancement"; color="a2eeef"; description="New feature or request" },
@{ name="documentation"; color="0075ca"; description="Improvements or additions to documentation" },
@{ name="good first issue"; color="7057ff"; description="Good for newcomers" },
@{ name="help wanted"; color="008672"; description="Extra attention is needed" },
@{ name="question"; color="d876e3"; description="Further information is requested" },
@{ name="wontfix"; color="ffffff"; description="This will not be worked on" },
@{ name="duplicate"; color="cfd3d7"; description="This issue already exists" },
@{ name="installation"; color="fbca04"; description="Related to installation process" },
@{ name="wsa"; color="1a7f37"; description="Related to WSA core" },
@{ name="play-store"; color="3DDC84"; description="Related to Play Store integration" },
@{ name="background-service"; color="0078D4"; description="Related to WSABackgroundService" },
@{ name="file-sharing"; color="6f42c1"; description="Related to WebDAV file sharing" },
@{ name="ui"; color="e4e669"; description="Related to GUI/interface" },
@{ name="build"; color="bfd4f2"; description="Related to build pipeline" },
@{ name="security"; color="ee0701"; description="Security-related issue" },
@{ name="priority:high"; color="b60205"; description="High priority" },
@{ name="priority:medium"; color="fbca04"; description="Medium priority" },
@{ name="priority:low"; color="0e8a16"; description="Low priority" },
@{ name="triage"; color="ededed"; description="Needs initial review" }
)
foreach ($label in $labels) {
$existing = gh label list --repo $Repo --json name | ConvertFrom-Json | Where-Object { $_.name -eq $label.name }
if ($existing) {
Write-Host " Label '$($label.name)' already exists, updating..." -ForegroundColor Yellow
gh label edit $label.name --repo $Repo --color $label.color --description $label.description
} else {
Write-Host " Creating label '$($label.name)'..." -ForegroundColor Green
gh label create $label.name --repo $Repo --color $label.color --description $label.description
}
}
Write-Host ""
Write-Host "Setting up milestones..." -ForegroundColor Cyan
# Milestones
$milestones = @(
@{ title="v1.3.0"; description="Next release — new features" },
@{ title="v1.2.x"; description="Bug fixes and patches" },
@{ title="Documentation"; description="Documentation improvements" },
@{ title="Website"; description="GitHub Pages website" },
@{ title="Testing"; description="Test coverage improvements" }
)
foreach ($ms in $milestones) {
$existing = gh api "repos/$Repo/milestones?state=all" | ConvertFrom-Json | Where-Object { $_.title -eq $ms.title }
if ($existing) {
Write-Host " Milestone '$($ms.title)' already exists" -ForegroundColor Yellow
} else {
Write-Host " Creating milestone '$($ms.title)'..." -ForegroundColor Green
gh api "repos/$Repo/milestones" -f title=$ms.title -f description=$ms.description -f state=open
}
}
Write-Host ""
Write-Host "Setup complete!" -ForegroundColor Green
Write-Host "Repository: https://github.com/$Repo" -ForegroundColor Cyan