I am tinkering with the idea of using a Raspberry Pi CM4 (for the IO) running Android (for the apps/app ecosystem) using a transparent LCD display (link at the bottom). The CM4 is on a Raspberry IO board. Initially, I connected the display to the Pi while it was still running Raspberry Pi OS, and it worked as a display monitor. One note: Even though the display is advertised as running 640x400, it only displayed correctly when the output resolution was 640x480.
I've installed a custom AOSP build on the CM4, and the transparent display no longer works with it. A desktop display (1080p) functions properly. If I have the display plugged in at boot, the Android apparently refuses to start, since I get no mirror in Android Studio. I've yet to find any hints using LogCat, though there are so many errors during a successful boot I suspect I may miss it in the flood. I have tried filtering different packages and log levels.
If I plug in the display as a second display, I get the offer to mirror the first display, though nothing useful appears on the transparent/second display, though it does display the same static lines as when I tried it at 640x400 on Pi OS.
To start, here's my config.txt as it stands now. I can't say everything I tried, but it should give an idea where my logic is. I have tried disabling EDID and running it with both 640x480 mode and 640x400 mode with 80 pixels of vertical overscan, which is a shot in the dark attempt at a fix. I'd assume the config does nothing given Android would overwrite anything, though it seems pertinent as far as the camera goes, in my experience.
Edit: I've tried again with dt_overlay=vc4-fkms-v3d
, and though it didn't before (that I can recall), it did allow me this time to see the "android" splash screen in my transparent display. It also prevents Android from booting, regardless of what is plugged-in ("can't find /dev/cec0").
# Kernel
arm_64bit=1
kernel=Image
# Ramdisk
initramfs ramdisk.img followkernel
# Audio
dtparam=audio=on
# Camera
#camera_auto_detect=1
start_x=1
dtoverlay=imx708,cam1
# CPU
arm_boost=1
# Display
hdmi_ignore_edid=0xa5000080
#disable_overscan=1
# Display panel
#dtoverlay=vc4-kms-dsi-7inch
#dtoverlay=rpi-backlight
# Graphics acceleration
disable_fw_kms_setup=1
dtoverlay=vc4-kms-v3d,noaudio
# Display
hdmi_force_hotplug=1
## DVI mode/no sound
hdmi_drive=1
hdmi_group=2
hdmi_mode=4
overscan_top=40
overscan_bottom=40
# I2C
#dtparam=i2c_arm=on
# I2S
#dtparam=i2s=on
# Serial console
enable_uart=1
# SPI
#dtparam=spi=on
# USB
dtoverlay=dwc2,dr_mode=peripheral
[cm4]
dtoverlay=dwc2,dr_mode=otg
[all]
Given this is the Raspberry exchange, I guess I should hope the problem is there or something else explicitely Pi-related. I get that I'd probably have better luck on an Android forum for the following:
The other big thing I've tried is poring over the system files hoping there's a display- or EDID-related configuration file I can edit. I've yet to find anything.
I haven't checked out the AOSP source code or drivers, since I haven't found a convenient way to browse. I don't want to download it since I'd have to get more disk space. I use AWS to build the image.
Transparent display: https://www.alibaba.com/product-detail/0-23-inch-micro-oled-high_1600888134741.html?spm=a2700.details.buy_together.2.7b821f2eib7Bq3