botdevice/README.md
Rodrigo Rodriguez (Pragmatismo) be6b17e65d Rename BotOS to BotDevice
- 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
2025-12-12 14:16:19 -03:00

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