build/README.md
2025-10-01 09:31:39 +03:00

137 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# How to Build IodeOs with Docker
## Why Docker?
Using Docker ensures all required dependencies are pre-installed and properly configured.
You dont need to install complex toolchains or modify your host system.
---
## Requirements
### Software
- **Docker**
Install Docker using the official script:
```bash
curl -fsSL https://get.docker.com | sh
```
- **Git**
[Install Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- **Repo tool**
Install the Google `repo` tool:
```bash
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
```
### Hardware
- **Disk:** \~300 GB (source code and build artifacts). SSD recommended
- **CPU:** 64-bit processor (Intel i5/i7 or AMD Ryzen 5/7 and above recommended, 8 cores or more preferred)
- **Memory:**
- Minimum: 16 GB RAM
- Bare minimum: 8 GB RAM (with swap; builds will be very slow and unstable)
---
## Usage
1. **Clone this repo** to your local machine and navigate into it:
```bash
git clone https://git.os-source.co/IodeOs/build.git
cd build
```
2. **Initialize and sync the repo** into the `IodeOs/build` checkout directory:
```bash
repo init -u https://git.os-source.co/IodeOs/manifests_android -b v6-staging --git-lfs
```
3. **Sync the repo** (this may take a while):
```bash
repo sync
```
> 💡 **Tip:** You can speed up and stabilize the sync process with additional options:
>
> ```bash
> repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags -f
> ```
>
> - `-c` : Sync only the current manifest branch
> - `-j$(nproc --all)` : Use all available CPU cores for parallel sync
> - `--force-sync` : Discard local changes and ensure a clean state
> - `--no-clone-bundle` : Skip using potentially outdated pre-packaged bundles
> - `--no-tags` : Avoid downloading all Git tags (saves time/space)
> - `-f` : Continue syncing other projects even if one fails
4. **Start the build with Docker**:
```bash
docker compose up -d
```
5. **Check the build logs and wait**:
```bash
docker logs -f repo_build_iode
```
6. Once the "build completed successfully" message appears in the logs (this typically takes 90240 minutes, depending on your hardware and
the number of threads used), navigate to the "out/target/product/brax3" folder to find your OTA package or fastboot images.
```bash
ls -la out/target/product/brax3 | grep lineage_brax3-ota.zip
-rw-r--r-- 1 root root 1424506068 Sep 30 18:34 lineage_brax3-ota.zip
```
---
## Troubleshooting
### Repo tool not found
If you see:
```
command not found: repo
```
Make sure `~/bin` is in your `PATH`:
```bash
export PATH=~/bin:$PATH
```
Add it to your `~/.bashrc` or `~/.zshrc` to make the change permanent.
---
### Repo sync is very slow or stalls
- Use more jobs with `-j<number>` (e.g. `repo sync -j16`) if you have a fast CPU and good network.
- If syncing fails, retry with:
```bash
repo sync --force-sync --no-clone-bundle --no-tags
```
---
## Licensing
IodeOs/build is licensed under the **Apache License, Version 2.0**.
See [LICENSE](LICENSE) for the full license text.