Reviving this old thread just to provide modern solutions for old problems:
I'm not sure how innards of scrcpy work, but it surely is something worth checking out - it's an open source project providing BOTH display AND control over your Android device.
Aside from the basic "show me phone's screen" it supports many other things like gestures, hotkeys, recording, wireless (!) control of android through adb and many other features. Additionally another project (linked on the github page - sndcpy
) allows audio forwarding. This is purely a host PC program, and only requires debugging enabled on the target device. IIRC everything works over ADB (so Android only???).
There is no visible lag when running through USB on my Ubuntu 20.04 Lenovo <-> Android 10 Huaweii P20Pro on full resolution and maximum FPS, and on wireless there are minor drops to 15 FPS and minimal input lag. I successfully managed to play a game on my phone through my notebook's mouse and keyboard.
Main adventages:
- multiplatform -
scrcpy
works on linux, windows and mac
- host OS only - minimal setup on adroid is required (allowing USB debugging)
- works out of the box
- what a quality!
- open source
To be fair, this doesn't exactly satisfy the "initiate from the phone" condition, but I'll post this answer anyway, only because the scrcpy
is so powerful in what it does and deserves more recognition.