update README
This commit is contained in:
parent
c09c37586c
commit
79005a062b
1 changed files with 125 additions and 26 deletions
153
README.md
153
README.md
|
|
@ -1,85 +1,184 @@
|
||||||
# A-Team Android ROM Builder
|
# A-Team Android ROM Builder
|
||||||
A GTK-based Android ROM build environment designed to simplify syncing, configuring, and compiling custom Android ROMs.
|
|
||||||
|
|
||||||
Built for Linux, the builder provides an organized interface for managing multiple ROM trees, devices, and build scripts without relying on lengthy terminal commands.
|
A GTK-based Android ROM development and build environment designed to simplify syncing, configuring, compiling, and managing custom Android ROM projects.
|
||||||
|
|
||||||
|
Built for Linux, A-Team Android ROM Builder provides an organized graphical interface for managing multiple ROM trees, devices, build configurations, scripts, and remote build machines without relying on lengthy or repetitive terminal commands.
|
||||||
|
|
||||||
|
The project remains **script-driven at its core**, allowing existing Bash build workflows to be used while providing a convenient desktop interface around them.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
* Simple GTK Desktop Interface
|
|
||||||
|
* Simple GTK 3 Desktop Interface
|
||||||
* Support For Multiple Android ROM Projects
|
* Support For Multiple Android ROM Projects
|
||||||
|
* Support For Multiple Android Devices
|
||||||
* Device-Specific Configuration Files
|
* Device-Specific Configuration Files
|
||||||
* Embedded Terminal For Live Build Output
|
* Automatic Environment Variable Management
|
||||||
* Resource Monitor For CPU, Memory, & System Usage
|
* Embedded VTE Terminal For Live Command & Build Output
|
||||||
|
* Integrated Resource Monitor For CPU, Memory, & System Usage
|
||||||
* Automated Device Repository Syncing
|
* Automated Device Repository Syncing
|
||||||
|
* Configurable Build Variants & Build Jobs
|
||||||
|
* Optional Ccache Support
|
||||||
## Features - ADVANCED
|
|
||||||
* Script Launcher For Common Development Tasks
|
* Script Launcher For Common Development Tasks
|
||||||
* Environment Variable Management
|
|
||||||
* Easily Expandable Project Structure
|
|
||||||
|
|
||||||
|
## Remote Build / SSH Support
|
||||||
|
|
||||||
|
A-Team Android ROM Builder can also work with remote Linux build machines through SSH.
|
||||||
|
|
||||||
|
This allows the GUI to remain on your local workstation while commands and Android build operations can be performed on a more powerful remote system.
|
||||||
|
|
||||||
|
Remote build functionality includes:
|
||||||
|
|
||||||
|
* Configurable SSH Build Hosts
|
||||||
|
* Connect To Remote Build Machines Directly From The GUI
|
||||||
|
* Embedded SSH Terminal Sessions
|
||||||
|
* Remote Command Execution
|
||||||
|
* Remote Android ROM Build Support
|
||||||
|
* Remote Resource Monitoring
|
||||||
|
* Build Host Selection From The GUI
|
||||||
|
* Reuse Of Existing Device & ROM Configuration
|
||||||
|
* Local Or Remote Build Workflows From The Same Interface
|
||||||
|
|
||||||
|
This makes it possible to use dedicated build servers, secondary Linux machines, or high-core-count systems without having to manually SSH into them before every build.
|
||||||
|
|
||||||
|
## Advanced Features
|
||||||
|
|
||||||
|
* Modular Python Backend
|
||||||
|
* Script Launcher For Build & Development Utilities
|
||||||
|
* Device-Specific Environment Variables
|
||||||
|
* ROM-Specific Environment Variables
|
||||||
|
* Automatic Build Environment Generation
|
||||||
|
* Configurable Android Version
|
||||||
|
* Configurable Build Variant
|
||||||
|
* Configurable Parallel Build Jobs
|
||||||
|
* Ccache Integration
|
||||||
|
* Local & Remote Build Host Support
|
||||||
|
* Expandable Device Configuration System
|
||||||
|
* Expandable ROM Configuration System
|
||||||
|
* Script Execution From The Selected ROM Tree
|
||||||
|
* Live Terminal Output
|
||||||
|
* Integrated System Resource Monitoring
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```text
|
```text
|
||||||
A-Team-Android_ROM_Builder/
|
A-Team-Android_ROM_Builder/
|
||||||
├── builder/ # Core application modules
|
├── builder/ # Core application modules
|
||||||
├── configs/ # Device and ROM configuration files
|
├── configs/ # Device, ROM, and application configuration files
|
||||||
├── scripts/ # Build and utility scripts
|
├── scripts/ # Build, sync, and utility scripts
|
||||||
├── gui.py # Application entry point
|
├── gui.py # Main GTK application entry point
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
### Base Requirements
|
||||||
|
|
||||||
* Linux
|
* Linux
|
||||||
* Python 3
|
* Python 3
|
||||||
* GTK 3
|
* GTK 3
|
||||||
* VTE 2.91
|
* VTE 2.91
|
||||||
* Git
|
* Git
|
||||||
* Android build dependencies
|
* Bash
|
||||||
|
* Android Build Dependencies
|
||||||
|
|
||||||
|
### Remote Build Requirements
|
||||||
|
|
||||||
|
For SSH / remote build functionality:
|
||||||
|
|
||||||
|
* OpenSSH Client
|
||||||
|
* SSH Access To The Remote Linux Build Machine
|
||||||
|
* Android Build Environment Configured On The Remote Host
|
||||||
|
* Git / Repo And Required Build Dependencies On The Remote Host
|
||||||
|
|
||||||
|
SSH key authentication is recommended so remote build sessions can be started without repeatedly entering passwords.
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
Clone the repository:
|
Clone the repository:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://ateam.gotadell.com/git/PizzaG/A-Team-Android_ROM_Builder.git
|
git clone https://ateam.gotadell.com/git/PizzaG/A-Team-Android_ROM_Builder.git
|
||||||
cd A-Team-Android_ROM_Builder
|
cd A-Team-Android_ROM_Builder
|
||||||
```
|
```
|
||||||
|
|
||||||
Launch the application:
|
Launch the application:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 gui.py
|
python3 gui.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Device settings are stored in:
|
Device settings are stored in:
|
||||||
```
|
|
||||||
|
```text
|
||||||
configs/<device>.conf
|
configs/<device>.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
ROM-wide settings are stored in:
|
ROM-wide settings are stored in:
|
||||||
```
|
|
||||||
|
```text
|
||||||
configs/rom.conf
|
configs/rom.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
The builder exports the required environment variables automatically before executing build scripts.
|
Configuration files allow device and ROM-specific values to remain separate from the application itself.
|
||||||
|
|
||||||
|
When a project is selected, A-Team Android ROM Builder loads the appropriate configuration and automatically exports the required environment variables before executing build or utility scripts.
|
||||||
|
|
||||||
|
## Build Workflow
|
||||||
|
|
||||||
|
A typical workflow consists of:
|
||||||
|
|
||||||
|
1. Launch A-Team Android ROM Builder.
|
||||||
|
2. Select the Android device.
|
||||||
|
3. Select the ROM and branch.
|
||||||
|
4. Select the Android version.
|
||||||
|
5. Select the local or remote build host.
|
||||||
|
6. Configure build options such as build variant, jobs, and ccache.
|
||||||
|
7. Sync the required device repositories.
|
||||||
|
8. Run build or utility scripts.
|
||||||
|
9. Monitor terminal output and system resources directly from the GUI.
|
||||||
|
|
||||||
|
Because the builder remains script-driven, existing Android build scripts can continue to be used without moving the actual build logic into the GUI.
|
||||||
|
|
||||||
|
## Design Philosophy
|
||||||
|
|
||||||
|
A-Team Android ROM Builder is intended to act as a frontend and project manager for an existing Android development environment rather than replacing the Android build system.
|
||||||
|
|
||||||
|
The application focuses on:
|
||||||
|
|
||||||
|
* Reducing repetitive setup tasks
|
||||||
|
* Keeping device configurations organized
|
||||||
|
* Keeping ROM configurations organized
|
||||||
|
* Making switching between Android projects simple
|
||||||
|
* Simplifying local and remote build workflows
|
||||||
|
* Providing immediate access to build output
|
||||||
|
* Providing system resource information during builds
|
||||||
|
* Keeping build logic inside reusable scripts
|
||||||
|
* Remaining modular and easy to customize
|
||||||
|
|
||||||
## Goals
|
## Goals
|
||||||
The project is intended to provide a lightweight, modular Android ROM build environment that:
|
|
||||||
|
|
||||||
* Reduces repetitive setup tasks
|
The project aims to provide a lightweight Android ROM development environment that:
|
||||||
* Keeps device configurations organized
|
|
||||||
* Makes switching between ROM projects simple
|
* Makes Android ROM development easier to manage
|
||||||
* Provides a clean GUI while remaining script-driven
|
* Reduces repetitive terminal commands
|
||||||
|
* Provides one interface for multiple devices and ROMs
|
||||||
|
* Supports both local workstations and remote build servers
|
||||||
|
* Keeps configuration separate from application logic
|
||||||
|
* Makes existing Bash scripts easy to integrate
|
||||||
|
* Remains useful to experienced Android developers without hiding the underlying build process
|
||||||
* Stays easy to customize and extend
|
* Stays easy to customize and extend
|
||||||
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Contributions, bug reports, and feature suggestions are welcome. Feel free to open an issue or submit a pull request.
|
|
||||||
|
|
||||||
|
Contributions, bug reports, improvements, and feature suggestions are welcome.
|
||||||
|
|
||||||
|
Feel free to open an issue or submit a pull request.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Released under the GNU General Public License v3.0 (GPL-3.0) | 2019-Present --> A-Team Digital Solutions
|
|
||||||
|
Released under the **GNU General Public License v3.0 (GPL-3.0)**.
|
||||||
|
|
||||||
|
**2019-Present — A-Team Digital Solutions**
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue