No description
Find a file
Brax Technologies 94f7ca2dd8 BaseOS manifest for the BraX3 (MT6835)
Squashed 2 commits:
  BaseOS manifest for the BraX3 (MediaTek MT6835)
  Move project paths to Brax3_BaseOs namespace

The snapshots/ directory is removed: it pinned project revisions that no
longer exist after the history rewrite.
2026-08-19 14:54:52 +03:00
default.xml BaseOS manifest for the BraX3 (MT6835) 2026-08-19 14:54:52 +03:00
LICENSE BaseOS manifest for the BraX3 (MT6835) 2026-08-19 14:54:52 +03:00
README.md BaseOS manifest for the BraX3 (MT6835) 2026-08-19 14:54:52 +03:00

BaseOS for the BraX3

The repo manifest for BaseOS, an Android 16 distribution for the BraX3 smartphone (MediaTek MT6835 / Dimensity 6300), by Brax Technologies PBC.

This repository is the entry point: it lists every other repository the build needs and pins each to an exact revision. Start here.

Android 16 (AOSP android-16.0.0_r4)
Base LineageOS 23.2
SoC MediaTek MT6835 (Dimensity 6300), arm64
Device BraX3 (brax3)
Branch baseos-1.0

Contents

Quick start

mkdir baseos && cd baseos
repo init -u https://review.os-source.co/Brax3_BaseOs/android_manifest -b baseos-1.0
repo sync -c --no-clone-bundle --no-tags -j8
repo forall -c 'git lfs ls-files -n >/dev/null 2>&1 && git lfs pull'

source build/envsetup.sh
lunch baseos_brax3-bp4a-userdebug
m -j"$(nproc)"

Read on if any of that fails — two of these steps have non-obvious failure modes, and both are described below.

If you would rather not manage the toolchain yourself, Brax3_BaseOs/build provides a containerised builder that runs all of the above for you.

Prerequisites

  • Disk: ~120 GB for the source tree, plus ~250 GB for build output.
  • Memory: 64 GB recommended. 32 GB will work with reduced parallelism.
  • OS: a current Linux distribution. Ubuntu 22.04+ or Debian 12+ are known good; the AOSP toolchain itself is hermetic, so the host mostly needs to provide git, git-lfs, python3 and repo.
  • git-lfs must be installed before syncing. See step 2.

Get the repo tool if you do not have it:

mkdir -p ~/bin && export PATH=~/bin:$PATH
curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

1. Get the source

repo init -u https://review.os-source.co/Brax3_BaseOs/android_manifest -b baseos-1.0
repo sync -c --no-clone-bundle --no-tags -j8

Important

An account is required. Brax3_BaseOs/* projects are fetched from git.os-source.co, the internal Gitea mirror, which answers 401 to every Brax3_BaseOs/* path. Without credentials in your environment, repo sync fails on all 45 of them — not just the two that are closed on purpose. Configure a git credential helper for git.os-source.co before syncing.

Two projects are closed deliberately, and stay closed even with an ordinary account:

Project Why
Brax3_BaseOs/android_vendor_brax_brax3 Proprietary vendor binaries under supplier NDA
Brax3_BaseOs/ci Internal CI configuration

vendor/brax/brax3 is listed in this manifest, so a sync with an ordinary account will complete every project except that one, and fail on it. That is expected. A complete build needs those binaries, there is no public substitute for them, and access is by arrangement with Brax Technologies PBC.

Note that the mirror lags Gerrit by a minute or two after a push, so a revision uploaded moments ago may not be fetchable yet. Review and upload are unaffected: the manifest's review attribute still points at review.os-source.co.

2. Resolve the Git LFS prebuilts

This step is not optional, and skipping it costs you two hours.

repo sync fetches git objects but never runs the Git LFS smudge filter, so LFS-backed files arrive as ~130-byte pointer stubs rather than their real contents. The WebView prebuilts are LFS-backed:

external/chromium-webview/prebuilt/{arm,arm64,x86,x86_64}/webview.apk

Left unresolved, the build runs for about 1 hour 45 minutes and then fails at 86%:

external/chromium-webview/prebuilt/arm64/webview.apk: error: failed opening zip: Invalid file.
error: Command '[... aapt2 dump badging .../webview.apk]' returned non-zero exit status 1.

Run this after every sync:

repo forall -c 'git lfs ls-files -n >/dev/null 2>&1 && git lfs pull'

Verify — the arm64 APK should be around 247 MB:

$ file external/chromium-webview/prebuilt/arm64/webview.apk
Android package (APK), with AndroidManifest.xml

An unresolved stub reports ASCII text and begins with version https://git-lfs.github.com/spec/v1.

3. Build

source build/envsetup.sh
lunch baseos_brax3-bp4a-userdebug
m -j"$(nproc)"

Do not build as root. Running repo or m under sudo produces a root-owned tree that later non-root syncs and builds cannot write to. This is tedious to unpick; it is much easier not to do it.

Artifacts land in out/target/product/brax3/. See Brax3_BaseOs/build for the flashable-image targets and for the containerised build path.

What is in this repository

Path Purpose
default.xml The manifest. One branch per Android version; this is baseos-1.0.
LICENSE Apache-2.0, covering this repository.

default.xml sets <default sync-c="true" sync-j="8"/>, so clients fetch only the pinned revision of each project rather than every branch of every project.

The kernel is built from source by default, from Brax3_BaseOs/android_kernel_mt6835 and Brax3_BaseOs/android_vendor_mediatek_kernel_modules. Passing BUILD_KERNEL=false uses the prebuilt set in device/brax/brax3-kernel instead. The two paths are meant to produce equivalent images, and PREBUILT_INFO in that repository records which source commit the committed prebuilts were built from.

Source availability and licensing

The Linux kernel and the out-of-tree kernel modules are GPL-2.0. Their complete corresponding source is published, and the shipped kernel identifies its own source in its version banner:

5.15.209-android13-8-gdd511ad2a748

dd511ad2a748 is a commit in Brax3_BaseOs/android_kernel_mt6835. Both repositories are readable without an account.

This manifest is Apache-2.0; see LICENSE. Individual projects carry their own licences — AOSP and LineageOS components under their upstream terms, and the vendor binaries under supplier agreements rather than an open-source licence.

Troubleshooting

Sync fails on vendor/brax/brax3

Expected without credentials. That project holds NDA vendor binaries and is not public. Every other project will have synced; the tree is fine for reading and for any work that does not need those binaries.

Build fails at ~86% on webview.apk

Unresolved Git LFS pointers. See step 2. Run the repo forall command and rebuild; no clean is required.

Permission denied during sync or build

The tree was probably created or synced as root. Restore ownership:

sudo chown -R "$(id -u):$(id -g)" .
Connection refused on port 29418

Transient Gerrit restart. Re-run repo sync; it is resumable. Adding --retry-fetches=3 makes it ride out short outages.

Reporting a problem

For build problems, licensing questions, or if you hold rights in anything published here that appears to be misattributed, contact Brax Technologies PBC. Attribution corrections are made promptly.


© Brax Technologies PBC. Kernel and kernel modules: GPL-2.0. This manifest: Apache-2.0.