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. |
||
|---|---|---|
| default.xml | ||
| LICENSE | ||
| README.md | ||
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
- Prerequisites
- 1. Get the source
- 2. Resolve the Git LFS prebuilts
- 3. Build
- What is in this repository
- Source availability and licensing
- Troubleshooting
- Reporting a problem
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,python3andrepo. git-lfsmust 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 fromgit.os-source.co, the internal Gitea mirror, which answers401to everyBrax3_BaseOs/*path. Without credentials in your environment,repo syncfails on all 45 of them — not just the two that are closed on purpose. Configure a git credential helper forgit.os-source.cobefore 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
repoormundersudoproduces 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.