# How to Build IodeOs with Docker ## Why Docker? Using Docker ensures all required dependencies are pre-installed and properly configured. You don’t 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 90–240 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` (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.