From fa137cc3c32b8160b96e5c1fd91c75f7ffcaaaa3 Mon Sep 17 00:00:00 2001 From: igorpecovnik <6281704+igorpecovnik@users.noreply.github.com> Date: Mon, 10 Aug 2026 06:43:54 +0000 Subject: [PATCH] docs: refresh README (AI-assisted) --- README.md | 203 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 156 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 398c3dd..7d5e9db 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,193 @@
+
.dmg / .app.zip | .exe / .msi | .deb / .AppImage |
+| Platform | Architectures | Formats |
+|---|---|---|
+| macOS | Intel x64, Apple Silicon | `.dmg`, `.app.zip` |
+| Windows | x64, ARM64 (code-signed) | `.exe`, `.msi` |
+| Linux | x64, ARM64 | `.deb`, `.AppImage` |
## How It Works
1. **Pick a manufacturer.** Choose one of the supported SBC vendors, or load your own image file.
2. **Pick a board.** Boards show real photos and metadata from armbian.com.
-3. **Pick an image.** Desktop or server, a kernel branch, and a stable, nightly, or rolling release build.
+3. **Pick an image.** Select desktop or server, a kernel branch, and a stable/nightly/rolling build.
4. **Flash.** The app downloads, decompresses, writes, and verifies for you.
-## Customization
-
-- Theme: light, dark, or follow the system setting
-- Developer mode: turn on detailed logging and open the log viewer
-- Language: 18 languages, auto-detected from your system
-
## Platform Support
| Platform | Architecture | Notes |
-|----------|-------------|-------|
+|---|---|---|
| macOS | Intel x64 | Full support |
-| macOS | Apple Silicon | Native ARM64 build, Touch ID support |
+| macOS | Apple Silicon | Native ARM64 build |
| Windows | x64 | Requires Administrator privileges |
| Windows | ARM64 | Native ARM64 build, requires Administrator privileges |
-| Linux | x64 | Uses lsblk for detection and UDisks2/polkit for elevated device access |
+| Linux | x64 | Uses UDisks2/polkit for elevated device access |
| Linux | ARM64 | Native ARM64 build |
-### Supported Languages
+## Supported Languages
+
+18 locales are shipped under `src/locales/`:
+
+English, Italian, German, French, Spanish, Portuguese, Portuguese (Brazil), Dutch, Polish, Russian, Chinese, Japanese, Korean, Ukrainian, Turkish, Slovenian, Swedish, Croatian.
+
+Missing keys in non-English locales are auto-translated daily from `en.json` by the `Data: Sync translation files` workflow, then opened as a pull request for review.
+
+## Tech Stack
+
+- **Desktop shell:** [Tauri 2](https://tauri.app) (`src-tauri/`), with the shell, dialog, updater, process, and store plugins
+- **Backend:** Rust (edition 2021, MSRV 1.85.0). Async I/O with `tokio`; HTTP via `reqwest` (rustls); decompression via `xz2`, `lzma-rust2`, `bzip2`, `flate2`, `zstd`; hashing via `sha2`
+- **Frontend:** React 19 + TypeScript, built with Vite 8; internationalization via `i18next` / `react-i18next`; icons from `lucide-react`
+- **In-repo Rust crate:** `crates/armbian-write-conf` — writes a small first-boot config file into an ext4 rootfs of a RAW disk image in userspace and then validates it (uses `gptman`, `mbrman`, `ext4-view`)
+- **QDL:** Qualcomm Device Loader integration via the `qdl` crate and `nusb`
+- **Platform-specific integrations:**
+ - Linux: `libc`, `udisks2`, `zbus` (pinned to `5.12.0`)
+ - macOS: `security-framework`, `core-foundation`
+ - Windows: `windows-sys` (file system, IOCTL, I/O)
+
+## Repository Layout
+
+```
+.
+├── src/ # React + TypeScript frontend
+│ ├── App.tsx, main.tsx, i18n.ts
+│ ├── components/ # flash, layout, modals, settings, shared
+│ ├── config/ # constants, i18n, badges, os-info, qdlBoards, ...
+│ ├── contexts/ # ThemeContext, UpdateContext
+│ ├── hooks/ # useTauri, useFlashOperation, useSettings, ...
+│ ├── locales/ # 18 JSON translation files
+│ ├── styles/ # base, layout, components, modal, flash, theme, ...
+│ ├── types/, utils/
+│ └── assets/ # icons and OS logos
+│
+├── src-tauri/ # Rust backend (Tauri 2)
+│ ├── src/
+│ │ ├── main.rs
+│ │ ├── commands/ # Tauri IPC commands (operations, scraping, ...)
+│ │ ├── config/, images/, devices/, flash/
+│ │ ├── qdl/ # Qualcomm EDL board flashing
+│ │ ├── paste/, logging/, utils/
+│ │ ├── autoconfig.rs, cache.rs, decompress.rs, download.rs, picture_cache.rs
+│ ├── capabilities/default.json
+│ ├── tauri.conf.json
+│ └── Cargo.toml
+│
+├── crates/armbian-write-conf/ # In-repo crate: inject first-boot config into ext4
+│ ├── src/{lib.rs,detect.rs,validate.rs}
+│ └── tests/inject_real_image.rs
+│
+├── scripts/
+│ ├── locales/sync-locales.js # AI-assisted locale sync
+│ └── setup/ # install-linux.sh, install-macos.sh, install-windows.ps1, install.sh
+│
+├── .github/workflows/ # CI: build, release, PR checks, locale sync, labels
+├── package.json, vite.config.ts, tsconfig*.json, eslint.config.js
+├── DEVELOPMENT.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md
+└── LICENSE # GPL-2.0
+```
-English, Italian, German, French, Spanish, Portuguese, Portuguese (Brazil), Dutch, Polish, Russian, Chinese, Japanese, Korean, Ukrainian, Turkish, Slovenian, Swedish, Croatian
+## Development
-## Why We Sign Our Code
+Full setup, build instructions, and architecture notes are in [DEVELOPMENT.md](DEVELOPMENT.md). Quick start:
-Downloading software shouldn't take a leap of faith. Every Windows release is cryptographically signed, so you can confirm the binary is exactly what we built and hasn't been tampered with on the way to you.
+```bash
+git clone https://github.com/armbian/imager.git
+cd imager
+bash scripts/setup/install.sh
+npm install
+npm run tauri:dev
+```
-This is possible thanks to [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=armbian-imager), which gives free code signing certificates to open source projects, and [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=armbian-imager) for the signing infrastructure.
+### Prerequisites
-## Development
+| Requirement | Minimum |
+|---|---|
+| Node.js | 20.19.0 |
+| Rust | 1.85.0 (edition 2021) |
+| npm | 10+ |
+
+### Common scripts
+
+| Command | Description |
+|---|---|
+| `npm run dev` | Vite dev server (frontend only) |
+| `npm run tauri:dev` | Full app with hot reload |
+| `npm run build` | Production frontend build (`tsc -b && vite build`) |
+| `npm run tauri:build` | Production distributable |
+| `npm run lint` | ESLint |
+| `npm run clean` | Remove `node_modules`, `dist`, and `src-tauri/target` |
+
+### Quality checks
+
+Before opening a PR, run the same checks as CI (`.github/workflows/maintenance-pr-check.yml`):
+
+```bash
+# Frontend
+npm run lint
+npx tsc --noEmit
+
+# Backend
+cd src-tauri
+cargo fmt --check
+cargo clippy --all-targets --all-features -- -D warnings
+```
+
+## Continuous Integration
+
+GitHub Actions workflows under `.github/workflows/`:
+
+| Workflow | Purpose |
+|---|---|
+| `maintenance-pr-check.yml` | Lint, type-check, Clippy, and build Linux x64 / Windows x64 / macOS ARM on every PR |
+| `maintenance-build.yml` | Manual build & artifact upload for Linux, macOS, Windows (x64 + ARM64) |
+| `maintenance-release.yml` | Tagged releases: multi-arch builds, code signing, updater artifacts |
+| `maintenance-delete-releases.yml` | Daily cleanup of old (pre)releases, keeping the N newest |
+| `data-sync-locales.yml` | Daily AI-assisted sync of locale files against `en.json` |
+| `infrastructure-sync-labels.yml` | Sync GitHub issue labels from `.github/labels.yml` |
+
+## Contributing
+
+Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) for the workflow, branch naming, and Conventional Commits format. Please also read the [Code of Conduct](CODE_OF_CONDUCT.md).
+
+Other ways to help:
+
+- [Become a board maintainer](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/)
+- [Apply for an open position](https://forum.armbian.com/staffapplications/)
+- [Help cover running costs](https://forum.armbian.com/subscriptions/)
+- [Help community members on the forum](https://forum.armbian.com/)
+
+## Code Signing
+
+Windows releases are cryptographically signed thanks to [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=armbian-imager), which provides free code signing certificates to open-source projects, and to [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=armbian-imager) for the signing infrastructure.
+
+## License
-Setup, build instructions, and project layout live in [DEVELOPMENT.md](DEVELOPMENT.md).
+Licensed under the GNU General Public License v2.0 — see [LICENSE](LICENSE).
---