No description
  • Java 56.6%
  • Go 29.4%
  • Shell 8.9%
  • C 1.9%
  • Makefile 1.3%
  • Other 1.9%
Find a file
xyauto b44fae64a7 give the browsable release page, not just the download prefix
The docs only ever showed .../releases/download/v2026.08.08-checkpoint, which is
a URL prefix used as a shell variable in the curl loop. It resolves only with a
filename appended, so pasting it into a browser returns 404 -- which is exactly
what happened. Added the release page link and said plainly why the prefix is
not one.
2026-08-15 12:45:23 +02:00
apps make the repo reproducible on someone else's machine 2026-08-15 12:27:49 +02:00
docs restore the original README, fix the quick-start, point at the release 2026-08-15 12:36:46 +02:00
manifests make the repo reproducible on someone else's machine 2026-08-15 12:27:49 +02:00
patches mirror the 314 LineageOS_gsi patches so the build survives upstream loss 2026-08-15 12:39:01 +02:00
rootdir reset persistent boot diagnostics per attempt 2026-08-08 15:25:35 +02:00
scripts source prebuilts from verified release bundle 2026-08-08 16:29:36 +02:00
.gitignore add build guide, pinned manifest, and in-house app sources 2026-08-15 11:57:35 +02:00
AndroidProducts.mk Initial XYAUTO Bengal LineageOS device bring-up 2026-08-07 15:04:40 +02:00
BoardConfig.mk Keep preserved partitions outside Stage 1 build graph 2026-08-08 09:51:00 +02:00
BUILDING.md give the browsable release page, not just the download prefix 2026-08-15 12:45:23 +02:00
device.mk make persistent boot diagnostics opt-in 2026-08-08 15:53:45 +02:00
lineage.dependencies Correct Stage 1 system and vendor identity 2026-08-07 19:33:44 +02:00
lineage_xyauto_bengal.mk fix duplicate VNDK 30 framework manifest entries 2026-08-08 15:14:30 +02:00
prebuilt-SHA256SUMS.txt add build guide, pinned manifest, and in-house app sources 2026-08-15 11:57:35 +02:00
README.md give the browsable release page, not just the download prefix 2026-08-15 12:45:23 +02:00

XYAUTO / Podofo SM4250 head unit — LineageOS 23.2 (hybrid, OEM kernel)

Everything needed to reproduce the working system image for the Podofo/XYAUTO Qualcomm Bengal (SM4250 / SM6115) head unit, and to work on the code.

  • BUILDING.md — the build guide. Host requirements, getting the source at the exact revisions this was built from, the prebuilts, building, packaging, and an honest description of what this is and is not.
  • docs/STRATEGY.md — the project's own statement of the Stage-1 strategy and its rules. Authoritative on intent.

What this is, in one paragraph

A hybrid: system.img is built from LineageOS 23.2 source, while the kernel, ramdisk, DTBO and vendor partition are kept as byte-frozen prebuilts from the working OEM firmware. There is no kernel source — the unit runs a 4.19.157-perf OEM kernel that was never published, so TARGET_NO_KERNEL := true and boot.img is consumed as-is. Package composition comes from PHH Treble, but the output is a device build, not a universal GSI (BUILDING_GSI := false). It is not yet a from-scratch device port; BUILDING.md says exactly how far it is from one.

Layout

path what
BoardConfig.mk, device.mk, lineage_xyauto_bengal.mk, … the device tree. This directory is device/xyauto/xyauto_bengal
scripts/ import prebuilts, install into a Lineage checkout, guarded build launcher, PGM packaging
manifests/ two pinned manifests — use the -upstream- one; see below
apps/ four standalone Gradle apps; three ship inside vendor.img
rootdir/, docs/ recovery fstab, hardware inventory, strategy
patches/device-phh-treble/ the one patch install-into-source.sh applies
patches/lineage-gsi-7bf212f4/ verbatim mirror of the 314 MisterZtr patches, in case that upstream disappears. Not the build input — see its PROVENANCE.md
prebuilt/ not in Git — six images, 4.2 GB, on the release page
prebuilt-SHA256SUMS.txt expected hashes of those six, committed here so they can be checked against the release

Two manifests, and picking the wrong one wastes an afternoon:

  • lineage-23.2-pinned-upstream-20260807.xml — use this. All 1178 projects at commits that are fetchable from their real remotes.
  • lineage-23.2-pinned-20260807.xml — a record of the reference machine's working heads. It includes 315 commits created locally by apply-patches.sh that exist on no remote, so repo sync fails against it. Kept for provenance only.

apps/ is not part of the Android build and Soong ignores it — the apps are built with Gradle and ship as APKs inside the frozen vendor image. scripts/install-into-source.sh clones this whole repository into device/xyauto/xyauto_bengal, so apps/ rides along harmlessly.

The short version

Read BUILDING.md before running this — several steps have non-obvious failure modes documented there. You need roughly 450 GB of free disk and a lot of RAM.

# 1. source, at the exact revisions
mkdir lineage-23.2-src && cd lineage-23.2-src
repo init -u https://github.com/LineageOS/android.git -b lineage-23.2 --git-lfs
cp /path/to/repo/manifests/lineage-23.2-pinned-upstream-20260807.xml .repo/manifests/
repo init -m lineage-23.2-pinned-upstream-20260807.xml
repo sync --force-sync --optimized-fetch --no-tags --no-clone-bundle --prune -j4

# 2. the 314 compatibility patches -- AFTER sync, and mandatory
bash LineageOS_gsi/patches/apply-patches.sh .

# 3. prebuilt images -- browse them at
#    https://forgejo.meinte.net/meinte/lineage23.2-hybrid-oemkernel/releases/tag/v2026.08.08-checkpoint
mkdir -p ~/xyauto-prebuilt && cd ~/xyauto-prebuilt
BASE=https://forgejo.meinte.net/meinte/lineage23.2-hybrid-oemkernel/releases/download/v2026.08.08-checkpoint
for f in SHA256SUMS.txt boot.img dtbo.img vendor.img system_ext.img product.img working-system.img; do
    curl -L -O -C - "$BASE/$f"
done
sha256sum -c SHA256SUMS.txt        # run from inside this directory

# 4. device tree into the checkout
cd /path/to/repo
./scripts/import-prebuilts.sh ~/xyauto-prebuilt
./scripts/install-into-source.sh /path/to/lineage-23.2-src

# 5. build
cd /path/to/lineage-23.2-src
source build/envsetup.sh
lunch lineage_xyauto_bengal-bp4a-userdebug
m systemimage

The download base above is a URL prefix, not a page — it only resolves with a filename appended, so pasting it into a browser gives a 404. To browse or download by hand, use the release page: https://forgejo.meinte.net/meinte/lineage23.2-hybrid-oemkernel/releases/tag/v2026.08.08-checkpoint

sha256sum -c must be run from the directory holding the images — the checksum file lists bare filenames. The downloads support range requests, so -C - resumes a broken transfer of the 2.7 GB image.

Reference build

The checkpoint this reproduces was built 2026-08-08 and boot-tested on the reference unit: Android reached sys.boot_completed=1, the display stayed up, and the MCU bridge, DSP daemon, system-suspend and keystore services were verified running. lpdump validated both SUPER metadata slots and all four logical extents, and e2fsck -fn passed for system, system-ext, product and vendor.

Compatibility warning

Use this only on hardware with the same board, panel and partition layout. Marketing names and exterior appearance are not sufficient proof. Flashing a different XYAUTO board, panel configuration or SUPER layout can leave the unit unable to boot or display an image. Read the safety rules at the end of BUILDING.md and in docs/STRATEGY.md first.