AADisplay Not Working on Android 15? Why LSPosed Broke It — and the Maintained Alternative
If your AADisplay setup recently stopped showing apps on Android Auto — especially after an Android 15 update — the cause is almost never AADisplay itself. It's the layer underneath: LSPosed. Here's what broke, why, and a maintained path that doesn't depend on the Xposed stack at all.
The short version
- AADisplay is an Xposed/LSPosed module. If LSPosed isn't loading on your Android version, AADisplay can't run — no matter what you change inside AADisplay.
- LSPosed is no longer actively maintained. On Android 15 it survives only through community forks, and they're fragile.
- A root-based projection that doesn't use Xposed sidesteps the whole dependency. KoalaMirror is one such option — and it shares AADisplay's VirtualDisplay lineage, which is worth explaining honestly.
Why AADisplay breaks now
AADisplay works by hooking the Android system framework to extend what Android Auto will display. That hooking power comes from Xposed, and on modern Android the Xposed runtime is provided by LSPosed.
LSPosed is effectively discontinued — the original project stopped, and support for newer Android releases lives only in community forks. When that Xposed layer is missing or unstable, every module on top of it goes down with it, AADisplay included. Add Xposed-detection and partial-ROM quirks, and "it worked last year, now it's a black screen after the update" is the predictable result.
What AADisplay is — and the lineage worth knowing
Credit where it's due: AADisplay, by Nitsuya, is an open-source (GPL-3.0) module that pioneered showing arbitrary Android apps on Android Auto through a nested VirtualDisplay technique. It's a clever approach and the conceptual root of this whole category.
KoalaMirror grew out of the same idea, but it is an independent, clean-room rewrite: it shares the VirtualDisplay concept, not AADisplay's code. That separation is deliberate — it keeps the two projects cleanly apart and respects AADisplay's open-source license rather than building a product on top of it.
The maintained path: root without the Xposed stack
Here's the key insight: the dependency that breaks AADisplay is Xposed/LSPosed — not root itself. A projection approach that uses root and a Zygisk runtime (Magisk, KernelSU, or APatch) without Xposed never touches LSPosed.
That's how KoalaMirror runs: install the APK, tap Deploy — it provisions the Zygisk module for you, including ReZygisk if your root solution doesn't bundle a Zygisk runtime — reboot once, and connect to your car. There are no LSPosed scopes to configure and no Xposed module to keep alive across Android updates.
What's the same, what's different
- Same family. Both render an independent display surface through Android Auto using the VirtualDisplay idea, so you get real apps and real layouts, not Google's template list.
- Different shape. AADisplay is a raw LSPosed module you configure by hand — enable scopes, register a launcher package. KoalaMirror is a packaged, supported product with one-tap deploy and tracked Android Auto compatibility.
- An honest caveat. Any approach that rides Android Auto depends on keeping up with Android Auto's changes. AADisplay and KoalaMirror just depend on different layers — Xposed versus a root + Zygisk module. Neither is immune to Android Auto itself changing.