BeagleY-AI Android 16 (ti-android-16) - system_b partition mount failure and boot loop after flashing

Board: BeagleY-AI (TI J722S / AM67A SoC, 4GB RAM, no eMMC)
Image: BeagleY_userdebug_11.00.01_sd (BayLibre ti-android-16)
Host OS: Ubuntu 24.04 (Noble)
Flash method: flashall.sh --board am67a-beagley-ai --sdcard=/dev/sdb


What I did

  1. Downloaded the pre-built Android 16 image package for BeagleY-AI
  2. Noticed dtbo.img was missing from the package, so I generated one using .dtbo files extracted from the official Debian image (beagley-ai-debian-12.6-xfce-arm64-2024-07-11-12gb.img) — specifically the k3-am67a-beagley-ai-*.dtbo overlays
  3. Ran flashall.sh and interrupted U-Boot to enter fastboot mode (fastboot 0)
  4. Flashing completed successfully — all partitions reported OKAY

Problem during flashing

During the fastboot flash process, I noticed these warnings in the U-Boot serial console:

** Bad device specification mmc boot_a_a **
Couldn't find partition mmc boot_a_a
** Bad device specification mmc vendor_boot_b_a **
Couldn't find partition mmc vendor_boot_b_a
** Bad device specification mmc init_boot_a_a **
** Bad device specification mmc super_a **
Couldn't find partition mmc super_a
** Bad device specification mmc dtbo_a_a **
** Bad device specification mmc dtbo_b_a **

It seems partition names are getting a double suffix (e.g. boot_a_a instead of boot_a). Despite these errors, fastboot still reported writing data successfully to most partitions.


Boot log (serial console at 115200 baud via /dev/ttyACM0)

After reboot, Android starts booting but gets stuck in a loop:

[  60.839823] init: [libfs_mgr] Could not set up logical partition, skipping!
[  60.855549] init: [libfs_mgr] Failed to open '/dev/block/by-name/system_b': No such file or directory
[  60.865623] /dev/block/by-name/system_b: Can't lookup blockdev
[  60.952902] /dev/block/mapper/system_b: Can't lookup blockdev
[  61.026836] init: [libfs_mgr] Failed to mount an un-encryptable, interrupted, or wiped partition on /dev/block/by-name/...

This repeats with aidl/activity service start failures every ~1 second:

[  57.374285] init: Control message: Could not find 'aidl/activity' for ctl.interface_start from pid: 327 (/system/bin/servicemanager)
[  69.701711] init: Control message: Could not find 'aidl/sensor_privacy' for ctl.interface_start from pid: 327 (/system/bin/servicemanager)

After ~30 minutes:

[ 1800.044441] audit: rate limit exceeded

ADB does not detect the device.


My questions

  1. Is the double suffix issue (boot_a_a) a known U-Boot/GPT bug with BeagleY-AI? Is there a specific U-Boot version required?
  2. Was dtbo.img supposed to be included in the image package? I generated it manually — could this be causing the partition table issue?
  3. Is there a known working procedure for flashing Android 16 on BeagleY-AI without building from source?
  4. Any suggestions on how to fix the system_b partition mount failure?

Thanks in advance!