157 lines
3.7 KiB
Markdown
157 lines
3.7 KiB
Markdown
|
|
# BotOS GSI - Generic System Image
|
||
|
|
|
||
|
|
## O que é GSI?
|
||
|
|
|
||
|
|
GSI (Generic System Image) é uma imagem Android pura que funciona em **qualquer dispositivo** com Project Treble (Android 8.0+).
|
||
|
|
|
||
|
|
Com GSI você pode:
|
||
|
|
- Substituir COMPLETAMENTE o sistema do fabricante
|
||
|
|
- Ter Android puro + BotOS
|
||
|
|
- Zero bloatware Samsung/Huawei/Xiaomi
|
||
|
|
- Controle total da inicialização
|
||
|
|
|
||
|
|
## Requisitos do Dispositivo
|
||
|
|
|
||
|
|
1. **Project Treble** - Verificar com:
|
||
|
|
```bash
|
||
|
|
adb shell getprop ro.treble.enabled
|
||
|
|
# Deve retornar "true"
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Bootloader desbloqueado**
|
||
|
|
|
||
|
|
3. **Partição system tipo A/B ou A-only**:
|
||
|
|
```bash
|
||
|
|
adb shell getprop ro.build.ab_update
|
||
|
|
# "true" = A/B, vazio = A-only
|
||
|
|
```
|
||
|
|
|
||
|
|
## Opções de GSI Base
|
||
|
|
|
||
|
|
### Opção 1: Usar GSI existente + BotOS Magisk Module
|
||
|
|
|
||
|
|
Mais simples. Use uma GSI pronta e instale o módulo BotOS:
|
||
|
|
|
||
|
|
1. Baixe GSI de: https://github.com/nicograph/nicograph-gsi
|
||
|
|
2. Flash via fastboot
|
||
|
|
3. Instale Magisk
|
||
|
|
4. Instale botos-magisk.zip
|
||
|
|
|
||
|
|
### Opção 2: Compilar AOSP com BotOS integrado
|
||
|
|
|
||
|
|
Para controle total, compile o AOSP do zero.
|
||
|
|
|
||
|
|
## Compilando AOSP com BotOS
|
||
|
|
|
||
|
|
### Requisitos de Build
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Ubuntu 20.04+ recomendado
|
||
|
|
# ~300GB de espaço em disco
|
||
|
|
# 16GB+ RAM
|
||
|
|
# CPU com muitos cores (compilação leva horas)
|
||
|
|
|
||
|
|
# Instalar dependências
|
||
|
|
sudo apt install -y git-core gnupg flex bison build-essential \
|
||
|
|
zip curl zlib1g-dev libc6-dev-i386 libncurses5 \
|
||
|
|
x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev \
|
||
|
|
libxml2-utils xsltproc unzip fontconfig python3
|
||
|
|
```
|
||
|
|
|
||
|
|
### Estrutura do Projeto
|
||
|
|
|
||
|
|
```
|
||
|
|
aosp/
|
||
|
|
├── .repo/ # Repo tool metadata
|
||
|
|
├── build/ # Build system
|
||
|
|
├── device/
|
||
|
|
│ └── pragmatismo/
|
||
|
|
│ └── botos/ # Device config para BotOS
|
||
|
|
├── packages/
|
||
|
|
│ └── apps/
|
||
|
|
│ └── BotOS/ # App BotOS como system app
|
||
|
|
├── vendor/
|
||
|
|
│ └── pragmatismo/
|
||
|
|
│ └── botos/ # Vendor customizations
|
||
|
|
└── out/ # Build output
|
||
|
|
```
|
||
|
|
|
||
|
|
### Passo 1: Inicializar Repo
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mkdir aosp && cd aosp
|
||
|
|
|
||
|
|
# Inicializar com Android 14 (ou versão desejada)
|
||
|
|
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r1
|
||
|
|
|
||
|
|
# Sync (demora muito!)
|
||
|
|
repo sync -c -j$(nproc) --no-tags
|
||
|
|
```
|
||
|
|
|
||
|
|
### Passo 2: Criar Device Tree BotOS
|
||
|
|
|
||
|
|
O device tree define configurações específicas do BotOS.
|
||
|
|
|
||
|
|
Veja os arquivos em `device/pragmatismo/botos/` neste repositório.
|
||
|
|
|
||
|
|
### Passo 3: Compilar
|
||
|
|
|
||
|
|
```bash
|
||
|
|
source build/envsetup.sh
|
||
|
|
lunch botos_arm64-userdebug
|
||
|
|
make -j$(nproc)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Passo 4: Flash
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Entrar em fastboot mode
|
||
|
|
adb reboot fastboot
|
||
|
|
|
||
|
|
# Flash GSI
|
||
|
|
fastboot flash system out/target/product/botos/system.img
|
||
|
|
fastboot flash vendor out/target/product/botos/vendor.img
|
||
|
|
fastboot flash boot out/target/product/botos/boot.img
|
||
|
|
|
||
|
|
# Limpar dados (necessário para GSI)
|
||
|
|
fastboot -w
|
||
|
|
|
||
|
|
# Reboot
|
||
|
|
fastboot reboot
|
||
|
|
```
|
||
|
|
|
||
|
|
## Arquivos de Configuração
|
||
|
|
|
||
|
|
Os arquivos necessários estão em:
|
||
|
|
- `device/` - Device tree
|
||
|
|
- `vendor/` - Vendor customizations
|
||
|
|
- `packages/apps/BotOS/` - App BotOS
|
||
|
|
|
||
|
|
## Alternativa: phh-treble GSI
|
||
|
|
|
||
|
|
Para uma abordagem mais rápida, modifique o phh-treble GSI:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/nicograph/nicograph-gsi
|
||
|
|
cd nicograph-gsi
|
||
|
|
|
||
|
|
# Adicionar BotOS como system app
|
||
|
|
mkdir -p nicograph-files/system/priv-app/BotOS
|
||
|
|
cp /path/to/BotOS.apk nicograph-files/system/priv-app/BotOS/
|
||
|
|
|
||
|
|
# Adicionar boot animation
|
||
|
|
cp /path/to/bootanimation.zip nicograph-files/system/media/
|
||
|
|
|
||
|
|
# Rebuild
|
||
|
|
./build.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Notas de Segurança
|
||
|
|
|
||
|
|
⚠️ **AVISO**: Modificar system images pode:
|
||
|
|
- Invalidar garantia do dispositivo
|
||
|
|
- Causar brick se feito incorretamente
|
||
|
|
- Desabilitar recursos de segurança (SafetyNet, etc)
|
||
|
|
|
||
|
|
Sempre tenha backup completo antes de qualquer modificação!
|