Unofficial LineageOS 23 (Android 16) bring-up for the Nothing Phone (3), codename
metroid, based on Qualcomm SM8735.
Alpha development. Maintainer-tested; not an official release.
There is currently no supported public OTA or recovery bootstrap download. Do not follow old mirrors, mix artifacts, or treat this repository as an official LineageOS release. The latest accepted build is a maintainer-local candidate; its source and artifact lock is not yet completely public or reproducible.
The current maintainer baseline has working radio/IMS infrastructure, Power HAL,
framework thermal skin/headroom, corrected launch/security metadata, and native
eSIM provisioning UI with matching stock modem firmware. Physical carrier/eSIM
profile acceptance, thermal/charging behavior, camera, Bluetooth/audio, haptics,
and accessory coverage remain. See BUGS.md.
Copy manifest/metroid.xml to .repo/local_manifests/metroid.xml so Repo status,
manifest locks, and release audits include the device, kernel, and private vendor
repositories. Access to the private vendor repository is required for builds;
never publish its contents.
For an installed build with MindTheGapps, use
scripts/apply-ota-adb.sh <audited-ota.zip> from this directory. It invokes
normal-system update_engine so Lineage backuptool_ab preserves addon.d/GApps;
do not use recovery sideload for routine upgrades. Initial installation and
rollback remain recovery operations.
This repository contains:
- the public device configuration;
- source patches temporarily carried for other Android projects;
- recovery-installer source;
- documented Google GKI artifacts permitted for GKI devices.
It does not contain Android userspace vendor blobs, private signing/AVB keys, modem firmware, or bootloader firmware. Proprietary Android files must be extracted from firmware owned by the builder.
Two stock GPL NFC kernel modules currently lack matching published source. They
are intentionally not redistributed here. Builders must extract the exact
documented files from their own stock image; see
kernel/prebuilt-modules/README.md.
This is a pinned public-source reconstruction recipe. Proprietary inputs remain builder-supplied and are verified separately.
-
Initialize the immutable source candidate:
repo init \ -u https://github.com/logix727/android_device_nothing_metroid.git \ -b refs/tags/lineage-23.0-20260806-source-r4 \ -m manifest/lineage-23.0-20260806-base.xml repo sync -c device/nothing/metroid/patches/apply-series.sh "$PWD"The manifest pins all platform projects to public pre-patch revisions. The application script verifies every resulting project tree.
manifest/metroid.xmlremains the moving development manifest and is not a release lock. -
Extract proprietary userspace files from your own documented B4.1 stock dump:
./device/nothing/metroid/extract-files.py /path/to/stock/dump
Exact stock inputs and hashes are recorded in
STOCK_INPUTS.md. -
Extract the two locally required NFC modules as documented in
kernel/prebuilt-modules/README.md. -
Build the kernel workspace and stage the generated device inputs:
mkdir /path/to/kernelws cd /path/to/kernelws repo init \ -u https://github.com/logix727/android_device_nothing_metroid.git \ -b lineage-23.0 \ -m kernel/manifest/metroid-kleaf.xml repo sync -c /path/to/lineage/device/nothing/metroid/kernel/setup-kleaf-workspace.sh "$PWD" build/kernel/kleaf/bazel.sh build --noenable_bzlmod \ --//vendor/qcom/opensource/camera-kernel:project_name=sun \ --target_pattern_file="$PWD/vendor-module-targets.txt" cd /path/to/lineage device/nothing/metroid/kernel/stage_kernel_artifacts.sh /path/to/kernelws
The pinned manifest records every public source/tool base revision. The setup script applies the four reviewed kernel carry patches from
kernel/patches/before creating the portable workspace. Host requirements includerepo,git,python3,bash,perl,rsync,find,flex,bison,patch, and standard GNU utilities. -
Build Android:
source build/envsetup.sh lunch lineage_metroid-bp2a-userdebug m baconPublic source builds use AOSP's non-secret AVB test key. A release maintainer supplies a private signing path with
METROID_AVB_KEY_PATH; private keys must never be committed or shared.
The accepted maintainer baseline is recorded in BASELINE.md.
The exhaustive per-operation hardware status is recorded in
HARDWARE_ACCEPTANCE.md; service registration alone
does not satisfy that matrix.
The current public reconstruction record is
release/20260806-source-lock.json; it is a
source candidate, not a claim that a matching OTA has passed device validation.
The Android local manifest and lineage.dependencies use the maintainer kernel fork
while this bring-up remains unofficial. An official submission must use
LineageOS-hosted dependencies and the active release branch conventions.
- No public build is presently endorsed for installation.
- Never disable AVB verification or set root vbmeta disable flags.
- Never mix recovery, boot, AVB, or OTA artifacts from different builds.
- Do not manually force an A/B OTA target slot.
- Keep a complete stock restore path before testing any future release.
This source mirror does not use GitHub Issues. Before reporting a problem to the maintainer, reproduce it on the documented source and firmware baseline with unsupported kernels, root modules, and add-ons removed. Reports must include the exact build hash, clean reproduction steps, and sanitized logs. Remove account, network, location, radio/subscriber, and device identifiers before sharing logs.
Original contributions are licensed as described in LICENSE.
Third-party and stock-derived material retains its original license and is
documented in NOTICE. No license grant in this repository overrides
third-party terms or corresponding-source obligations.
LineageOS, AOSP, Qualcomm CAF, Nothing, and reference-device maintainers.
Upstream contributions must follow the LineageOS charter and Gerrit process: https://github.com/LineageOS/charter and https://wiki.lineageos.org/how-to/submitting-patches/.
Unofficial. No warranty. You are responsible for your device.