- Update package name in Cargo.toml to botdevice - Update product name in tauri.conf.json to BotDevice - Update identifier to br.com.pragmatismo.botdevice - Update README.md with BotDevice branding - Add NPU support mention for Orange Pi 5
290 lines
10 KiB
Markdown
290 lines
10 KiB
Markdown
# BotDevice - Android, HarmonyOS & IoT powered by General Bots
|
|
|
|
**BotDevice** transforms any Android, HarmonyOS, or embedded device into a dedicated General Bots system, removing all manufacturer bloatware (Samsung, Huawei, Xiaomi, Honor, etc) and replacing it with the GB interface.
|
|
|
|
## Supported Platforms
|
|
|
|
### Mobile
|
|
- **Android** (AOSP, Samsung One UI, Xiaomi MIUI, etc)
|
|
- **HarmonyOS** (Huawei, Honor)
|
|
|
|
### Embedded / IoT
|
|
- **Raspberry Pi** (Zero, 3, 4, 5) - Linux with LCD/HDMI display
|
|
- **Orange Pi** - Budget Raspberry alternative with NPU
|
|
- **Banana Pi** - ARM boards with display
|
|
- **BeagleBone** - Industrial IoT
|
|
- **Arduino** (with ESP32/ESP8266) - OLED/LCD display + WiFi
|
|
- **ESP32** - TFT/OLED displays
|
|
- **Rock Pi** - RK3399/RK3588 boards
|
|
- **NVIDIA Jetson** - Edge AI with display
|
|
- **LattePanda** - x86 embedded
|
|
- **ODROID** - Hardkernel boards
|
|
|
|
### Supported Displays
|
|
- LCD Character (16x2, 20x4)
|
|
- OLED (128x64, 128x32)
|
|
- TFT/IPS (320x240, 480x320, 800x480)
|
|
- E-ink/E-paper
|
|
- HDMI (any resolution)
|
|
|
|
## Installation Levels
|
|
|
|
| Level | Requirements | What it does |
|
|
|-------|-------------|--------------|
|
|
| **1** | ADB only | Removes bloatware, installs BotDevice as app |
|
|
| **2** | Root + Magisk | GB boot animation, BotDevice as system app |
|
|
| **3** | Unlocked bootloader | Replaces entire Android with BotDevice |
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
cd botdevice/rom
|
|
./install.sh
|
|
```
|
|
|
|
The installer automatically detects the device and shows available options.
|
|
|
|
## Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ LEVEL 3: GSI │
|
|
│ ┌─────────────────────────────────────────────────────────────────────────┐│
|
|
│ │ Custom Android AOSP - Zero manufacturer apps ││
|
|
│ │ GB boot animation from startup ││
|
|
│ │ BotDevice integrated as single launcher ││
|
|
│ └─────────────────────────────────────────────────────────────────────────┘│
|
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
│ LEVEL 2: MAGISK MODULE │
|
|
│ ┌─────────────────────────────────────────────────────────────────────────┐│
|
|
│ │ Original Android + Magisk ││
|
|
│ │ Bloatware removed via overlay ││
|
|
│ │ GB boot animation ││
|
|
│ │ BotDevice as privileged system app ││
|
|
│ └─────────────────────────────────────────────────────────────────────────┘│
|
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
│ LEVEL 1: DEBLOAT + APP │
|
|
│ ┌─────────────────────────────────────────────────────────────────────────┐│
|
|
│ │ Original Android (Samsung/Huawei/Xiaomi/etc) ││
|
|
│ │ Bloatware removed via ADB (no root) ││
|
|
│ │ BotDevice installed as normal app ││
|
|
│ │ Can be set as default launcher ││
|
|
│ └─────────────────────────────────────────────────────────────────────────┘│
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ BotDevice App (Tauri) │
|
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
│ botui/ui/suite │ Tauri Android │ src/lib.rs (Rust) │
|
|
│ (Web Interface) │ (WebView + NDK) │ (Backend + Hardware) │
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
botdevice/
|
|
├── Cargo.toml # Rust/Tauri dependencies
|
|
├── tauri.conf.json # Tauri config → botui/ui/suite
|
|
├── build.rs # Build script
|
|
├── src/lib.rs # Android entry point
|
|
│
|
|
├── icons/
|
|
│ ├── gb-bot.svg # Source icon
|
|
│ ├── icon.png (512x512) # Main icon
|
|
│ └── */ic_launcher.png # Icons by density
|
|
│
|
|
├── scripts/
|
|
│ ├── generate-icons.sh # Generate PNGs from SVG
|
|
│ └── create-bootanimation.sh # Generate boot animation
|
|
│
|
|
├── capabilities/
|
|
│ └── default.json # Tauri permissions
|
|
│
|
|
├── gen/android/ # Generated Android project
|
|
│ └── app/src/main/
|
|
│ ├── AndroidManifest.xml # HOME intent (launcher)
|
|
│ └── res/values/themes.xml # GB dark theme
|
|
│
|
|
└── rom/ # Installation tools
|
|
├── install.sh # Interactive installer
|
|
├── scripts/
|
|
│ ├── debloat.sh # Remove bloatware (no root)
|
|
│ └── build-magisk-module.sh # Generate Magisk module
|
|
└── gsi/
|
|
├── README.md # GSI/AOSP instructions
|
|
└── device/pragmatismo/botdevice/ # AOSP device tree
|
|
```
|
|
|
|
## Prerequisites
|
|
|
|
### To compile BotDevice App
|
|
|
|
```bash
|
|
# Rust and Android targets
|
|
rustup target add aarch64-linux-android armv7-linux-androideabi
|
|
|
|
# Android SDK and NDK
|
|
export ANDROID_HOME=$HOME/Android/Sdk
|
|
export NDK_HOME=$ANDROID_HOME/ndk/25.2.9519653
|
|
|
|
# Tauri CLI
|
|
cargo install tauri-cli
|
|
```
|
|
|
|
### To install on devices
|
|
|
|
```bash
|
|
# ADB
|
|
sudo apt install adb
|
|
|
|
# To generate icons/boot animation
|
|
sudo apt install librsvg2-bin imagemagick
|
|
```
|
|
|
|
## Building
|
|
|
|
```bash
|
|
cd botdevice
|
|
|
|
# Generate icons
|
|
./scripts/generate-icons.sh
|
|
|
|
# Initialize Android project
|
|
cargo tauri android init
|
|
|
|
# Build APK
|
|
cargo tauri android build --release
|
|
```
|
|
|
|
## Installation
|
|
|
|
### Quick Method (Interactive)
|
|
|
|
```bash
|
|
cd botdevice/rom
|
|
chmod +x install.sh
|
|
./install.sh
|
|
```
|
|
|
|
### Manual Method
|
|
|
|
#### Level 1: Debloat + App (No Root)
|
|
|
|
```bash
|
|
# Connect device via USB (debug enabled)
|
|
cd botdevice/rom/scripts
|
|
./debloat.sh
|
|
|
|
# Install APK
|
|
adb install ../gen/android/app/build/outputs/apk/release/app-release.apk
|
|
|
|
# Set as launcher: Home → BotDevice → Always
|
|
```
|
|
|
|
#### Level 2: Magisk Module (With Root)
|
|
|
|
```bash
|
|
# Generate module
|
|
cd botdevice/rom/scripts
|
|
./build-magisk-module.sh
|
|
|
|
# Copy to device
|
|
adb push botdevice-magisk-v1.0.zip /sdcard/
|
|
|
|
# On phone: Magisk → Modules → + → Select ZIP → Reboot
|
|
```
|
|
|
|
#### Level 3: GSI (Unlocked Bootloader)
|
|
|
|
See detailed instructions in `rom/gsi/README.md`.
|
|
|
|
## Bloatware Removed
|
|
|
|
The debloat automatically removes:
|
|
|
|
**Samsung One UI:**
|
|
- Bixby, Samsung Pay, Samsung Pass
|
|
- Duplicate apps (Email, Calendar, Browser)
|
|
- AR Zone, Game Launcher
|
|
|
|
**Huawei EMUI/HarmonyOS:**
|
|
- AppGallery, HiCloud, HiCar
|
|
- Huawei Browser, Music, Video
|
|
- Petal Maps, Petal Search
|
|
- AI Life, HiSuite
|
|
|
|
**Honor MagicOS:**
|
|
- Honor Store, MagicRing
|
|
- Honor Browser, Music
|
|
|
|
**Xiaomi MIUI:**
|
|
- MSA (analytics), Mi Apps
|
|
- GetApps, Mi Cloud
|
|
|
|
**Universal (all):**
|
|
- Pre-installed Facebook, Instagram
|
|
- Pre-installed Netflix, Spotify
|
|
- Games like Candy Crush
|
|
|
|
## Boot Animation
|
|
|
|
To customize the boot animation (requires root):
|
|
|
|
```bash
|
|
# Generate animation
|
|
./scripts/create-bootanimation.sh
|
|
|
|
# Install (root)
|
|
adb root
|
|
adb remount
|
|
adb push bootanimation.zip /system/media/
|
|
adb reboot
|
|
```
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Dev mode (connects to device)
|
|
cargo tauri android dev
|
|
|
|
# Logs
|
|
adb logcat -s BotDevice:*
|
|
```
|
|
|
|
## Embedded Interface (LCD/Keyboard)
|
|
|
|
For devices with limited resources, use the embedded interface at `botui/ui/embedded/`:
|
|
|
|
```bash
|
|
# Raspberry Pi with LCD display
|
|
chromium-browser --kiosk --app=http://localhost:8088/embedded/
|
|
|
|
# ESP32 with TFT display (via WebView)
|
|
# Configure BOTSERVER_URL in firmware
|
|
|
|
# Character terminal mode
|
|
# Use botui/ui/embedded/ with CONFIG.maxMsgLen adjusted
|
|
```
|
|
|
|
### Embedded Interface Features
|
|
- Optimized for displays 320x240 down to 16x2 characters
|
|
- High contrast (green/black, e-ink)
|
|
- Low memory usage (max 10 messages)
|
|
- Keyboard navigation (Enter sends, Esc clears)
|
|
- Auto reconnection
|
|
|
|
## Features
|
|
|
|
- 🏠 **Launcher Mode**: Replaces home screen
|
|
- 🤖 **Chat Interface**: botui/ui/suite
|
|
- 🦀 **Rust Backend**: Via Tauri
|
|
- 📍 **GPS**: Location access
|
|
- 📷 **Camera**: Via Tauri plugins
|
|
- 🔔 **Notifications**: Push notifications
|
|
- 🌐 **Internet**: Communication with botserver
|
|
- 🎨 **Boot Animation**: Customizable with gb-bot.svg
|
|
|
|
## License
|
|
|
|
AGPL-3.0
|