Multi-window cockpits in Android Automotive — harder than they look. 🪟
Daniel Georg shares what building them really takes at droidCon Berlin.
Learn more: https://t.co/9TaBzGVy4o
#nextapp26#AndroidDev
@darkdth@dhh Omarchy on a Googlebook would be cool. Meanwhile I'm building tiling window management for Android (so far running on Android Automotive 😄)
@topjohnwu This is exactly what I've been waiting for. I built tiling window management for Android Automotive on top of WMShell and Scalable UI. Googlebook is the obvious next target: same windowing stack, real desktop. Can't wait to try it once flashing works 👀
I've recently been spending time with a Googlebook, exploring consumer-friendly modding and rooting paths, with the ultimate goal of turning it into a dedicated dev machine utilizing its Linux VM environment (Linux Terminal).
In my opinion, Googlebooks are the ideal platform for Android modding. Unlike smartphones where rooting often breaks essential functionality like mobile wallets and banking apps, a Googlebook can just behave like any laptop and access those features by simply using the desktop browser.
From what I can tell, you can unlock the bootloader just like on any existing Pixel device. Under the hood, Googlebook OS is fundamentally Android: it features standard Android fastboot, fastbootd (userspace fastboot), and Android recovery.
However, connecting a Googlebook to a host machine for fastboot flashing over USB doesn't work without specialized cables (at least in its current state).
On top of that, Googlebook OS runs Android in Headless System User Mode (HSUM), which breaks Magisk's assumption of a single primary user (USER_SYSTEM). An adaptation for this is already in the pipeline.
As for how to actually mod and flash the device without USB fastboot access? No need to worry! I've already figured out a solution. Stay tuned 😎!
Oh, and about SystemUI: you can register your own ShellTaskOrganizer outside of it, the way CarLauncher did in Android 12.1 (https://t.co/IbWvrOJ12J). But that app still needs signature-level permissions, and it starts after SystemUI, so you may get some flickering until it takes over the windows. :(
I don't think it's for regular developers yet. It looks more like a platform for OEMs. All of this still lives inside the SystemUI process, and the window management (wmshell) APIs it relies on need signature-level permissions, so only components the OEM ships and signs can use them. In automotive, Google did a great job with Scalable UI for OEM customization. But every one of those customizations still has to ship in the system image, signed with the OEM's key.
And there's a good reason for that. Once your code runs as part of SystemUI, it gets a huge set of system permissions and almost full control over the device. From a security point of view, I wouldn't let third-party developers in there.
So there's no simple way for a user to swap the "desktop environment" the way you can on Linux. That's exactly what I'm evaluating right now, and I'll share my results with the community. :)
I just published: "I Ran DOOM on Android SDV’s High Availability Renderer (HAR) and Learned How the Software-Defined Vehicle Stack Is Actually Built"
https://t.co/R7rPs3esvL
Part 2: Scalable UI in AAOS: The Panel Controller.
RRO can declare and animate a panel, but can't ship the View inside or react to the rest of the screen. This post crosses into the controller: an AGSL shader and a glow that follows the focused panel.
https://t.co/ZJvmNYNBqj
@utzcoz Thanks! Yeah, that would be cool. Technically it's not that hard, the core ideas work across form factors. The tricky part is maintenance. If it's not in mainline, keeping it up to date over time becomes a real pain.
@evowizz I looked into this from the Android Automotive (AAOS) angle - Remote Compose as a way to share UI across processes in the car. A deep dive + PoC:
https://t.co/9wYnRirnBO