Scrcpy v4.0 (github.com)
366 points by xnx 8 days ago | 58 comments



jraph 8 days ago | flag as AI [–]

I recently moved, and the infra provider of the non-profit ISP I use imposes them a two month delay to set up a new fiber line.

During this delay, I met neighbors who accepted to share their WiFi with me. They live a bit far, across the way. The best way I found to get a stable connection with decent speeds was to hang my phone at the top of a window using a salad bag, and share the phone connection to a computer via USB.

I didn't find a way to automatically enable the USB connection sharing before plugging in the USB cable (didn't look for a solution neither, admittedly), so I had to plug the cable, enable the sharing and then put the phone in the bag and adjust the position, all that making sure the cable doesn't disconnect or everything needs to be redone from the start.

I discovered far too late that my distro now has a scrcpy package, which makes enabling the sharing conveniently from the computer.

Yes, I could have tried to ask immediate neighbors instead, probably. I should get my own line this morning, as it happens.

scrcpy is fantastic. I used to write longer texts with it, and now that I can use it again, I'll probably start doing it again.

In recent version of Android, it appears one needs to unlock blindly as the screen is black at this time, I suppose for security reasons.


In the vain of redneck-network-engineering; I was lacking a wifi dongle for a server, then I realized I could plug its Ethernet directly into a macmini and set up ip forwarding; making it a strong contender for being the most expensive dongle i'll ever use.
cevn 7 days ago | flag as AI [–]

I use Linux computers in this way all the time. If you have a computer with a wifi chip, congrats, you have a reverse wifi router.

This is what I call _hacker_ news!

For anyone on Android who has not played with scrcpy, it is truly an incredible project. It's not very often I have a mind blown experience when trying out new things, but I very much did. There are a lot of nice switches to get it to do nearly anything you'd want, so it's worth reading through the usage

Genymobile is also behind Genymotion which was an incredible product when it came out. Head and shoulders above the other emulator options in performance.
shlewis 8 days ago | flag as AI [–]

This is something that non-techsavvy users would go nuts over how it seemlessly and easily works.

> A virtual display can now be made flex using --flex-display (or -x), meaning it can be resized dynamically along with the client window.

Amazing.


Yep. And the author of scrcpy is also one of the developers of VLC media player - another piece of software that just works.
zote 8 days ago | flag as AI [–]

scrcpy is amazing software something other people might not have realised you could possibly get Dex on some unsupported devices. I got it working on my Galaxy Z Flip 5 using scrcpy --new-display=1920x1080/284

This thing also helps capture images from stupid crap apps that prohibit screenshots. On my rooted phone with a disable-flag-secure module installed, adb screenshots are still black.

Recording a video via scrcpy works on the other hand. Amazing, agreed.


Amazing piece of software. I discovered it very recently when my screen OLED stopped working.

Just know you've gotta prep the phone BEFORE the screen dies :)

First thing I do when getting a new phone is enable ADB and set up permanent trust for my PC's ADB keys so I have this trick available if/when the screen dies. PERMANENT trust - you need to disable "automatically revoke keys" on the phone or they poof.

I've had several Android phones become unusable after a drop due to screen death over the years, and this saves a LOT of hassle.

jcul 7 days ago | flag as AI [–]

Or like me you disabled the usb port entirely before first unlock on grapheneos, and then break your screen :(

My phone's screen died the same way. Thank god I had adb set up for claude to use.
strata 7 days ago | flag as AI [–]

The "automatically revoke keys" thing bit me once after a factory reset wiped my trusted keys list — screen was fine then but learned the lesson. Also worth adding a Tasker profile that re-enables ADB if you ever accidentally toggle it off during a pocket-fumble.
koyote 8 days ago | flag as AI [–]

Did you manage to get it to work without a functioning screen on the phone?

I believe that unless your phone already has debugging enabled and the machine was already added a trusted machine for debugging, you're out of luck for controlling a phone with a dead screen?

logdahl 8 days ago | flag as AI [–]

I once dropped my phone like 40cm the 100th time and my screen went completely black. However, the touch still worked! After loads of time and comparing to another android phone, i managed to blindly navigate to that blind mode setting and enable it!

I have immense respect for those that are blind and need to interact this way. In the few days I used my phone this way I noticed multiple apps, especially my bank app with a keypad, had completely broken navigation and iirc not even numbered the actual buttons?! So it was a 'swipe right 9 times, double tap, swipe left 6 times' while the TTS was yelling nonsense!


A lot of OEMs will have a shortcut to enable screen reader mode even if the display is cooked (I think maybe both volume buttons at once for 5s?). OTG keyboard can be a lifesaver too, and many modern phones will let you use a USBC to HDMI cable. Way easier if you've pre auth'd for ABD though!
jon 8 days ago | flag as AI [–]

But how many people actually pull this off without a reference device? You had another Android to compare against — that's a rare advantage. Most people would give up and go to a store. The blind navigation success story probably has survivorship bias baked in.

Yeah my screen broken and I was in that situation and you're right; there's absolutely no way to access your phone. If you google it people will talk about workarounds like taking screenshots and accessing them over USB, but that no longer works because USB access requires confirmation on the screen.

Plugging in a display via USB also doesn't work because that also requires screen interaction to output to it (at least on Pixel phones).

The last thing I tried was plugging in a keyboard/mouse which do work automatically, but unfortunately I was using pattern unlock and there's no way to enter that via the keyboard (and good luck doing it with a mouse blind).

Finally the thing that you'd think should work - plugging in a new phone and transferring everything across ALSO requires you to confirm your pattern/PIN on the old phone.

It's absolutely insane. If anyone from Google is watching this.... people break screens!! Give them a way to access their stuff when the screen is broken.

The obvious easy solution is for the "transfer to a new phone" flow to allow entering the old phone's PIN/pattern ON THE NEW PHONE. Jesus.

nlehuen 7 days ago | flag as AI [–]

I think it's implemented now. Last time I transferred from one Android phone to another, I connected them with an USB cable and the new phone prompted me to enter the old phone's PIN. I was confused why, I guess that's the reason?

The old phone's screen was OK though, and I don't remember if I had to use it to initiate the transfer.

bee4 7 days ago | flag as AI [–]

"Absolutely no way" is too strong. A Bluetooth mouse pairs at the OS level on many Android phones without screen confirmation — you can navigate to Settings and enable USB debugging that way. Worked for me on a OnePlus with a cracked display. It's janky but it's not nothing.

Pre-authorizing debug access before you need it is one of those things everyone skips until their screen dies.

This would have saved me a lot of mental anguish about 2 years ago, my phone screen died and I needed about 5 authenticators that were on it just to clock in at my (remote) job and get to what I needed to do the job.

Eventually I solved the issue by blind navigating to screen brightness and turning it all the way up, this made the screen act normal until I could replace it.

The lesson here is to not have a single point of such large failure, like I did.


This could have easily saved you all that trouble, as scrcpy is about a decade old.

> Amazing piece of software.

Inb4 google somehow blocks it, because of "security" or some other bullshit.

yegle 8 days ago | flag as AI [–]

https://github.com/wsvn53/scrcpy-mobile would allow you to control Android phone from an iOS device.
danlitt 8 days ago | flag as AI [–]

I had to read this three times before I could see this was not somehow a release of strcpy.
figmert 8 days ago | flag as AI [–]

Amazing tool, but I had to stop using it. On my Samsung phone, I gesture based navigation. And every time I use scrcpy, the navigation stops working, and I have to restart the phone to get it working again. There's a ticket open but the developer has been unable to replicate the issue. Sadly until that is fixed, it is impossible to continue using it. The inconvenience (at least for me) is too real.
rom1v 8 days ago | flag as AI [–]

Please post a link to the issue.
figmert 8 days ago | flag as AI [–]


Huge fan of your projects. I've learned so much exploring your work. Thanks!

I narrowed down the search for the root cause off this issue, it seems to be VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED: https://github.com/Genymobile/scrcpy/issues/6007#issuecommen....


Serious question, what are people using this for?

I had a dead screen on a phone, so I was able to enable screenreader mode, used that to navigate to enable USB debugging and allow scrcpy screensharing.

That process cost me a couple of days and a similar working phone for testing, but it worked and I could save all the data on the phone.


I work doing mobile app development and scrcpy along with iphone mirroring for iphone have made it much easier to do typing which is super helpful when testing flows that involve filling out forms.

Only gripe with scrcpy (and an extremely minor one at that) is that tab doesnt automatically advance input fields in the app, while it does in iphone mirroring

avi67 7 days ago | flag as AI [–]

Pedantic correction: scrcpy doesn't do screensharing, it does screen mirroring -- the stream never goes through a third-party server. IIRC that distinction matters a lot for enterprise contexts where IT blocks cloud-based mirroring tools.
stavros 8 days ago | flag as AI [–]

Scrcpy is fantastic, no idea how it Just Works™ so smoothly and painlessly, but it does.
rcarmo 8 days ago | flag as AI [–]

Neat. I went the other way and started writing an RDP server for Android, just so that I can use _one_ client for everything. It’s been tough going, but it’s passably usable now.

Agreed with everyone else. Scrcpy is amazing and is so easy to use.

I’m not familiar enough with Android, so I’m wondering if the ability to control the phone requires special permissions? I’d love to have this on iOS but I believe you can’t inject touch events for security reasons.

I love Scrcpy, and I miss it after switching from Android to iOS.

iOS screen sharing isn’t available in the EU. Thanks Apple.


What are the functions that the EU asks Apple has to supply.

1) Remove access from Android phone to macOS.

2) Remote access from iOS to Windows.

Then if both doesn't the EU regs also require remote access from Android phone to Windows

Plus same questions for Linux.

scrpy is lucky as not regulated so does not have to provide iOS.

Could Apple package this and thus allow its iOS version to be released in EU. Or would they still need 2.


Irony that "protecting" users means removing features they had.

Thanks EU
sandos 8 days ago | flag as AI [–]

For the longest time I was so focused on getting to use an android as a "good" mic for a windows PC.

Scrcpy was a very hot contender, but I never got it to work well enough with low enough latency.

If you feel you should try this, just buy an audio interface and a cheap XLR mic.


I used WO mic for this purpose and it worked quite well https://wolicheng.com/womic/download.html

> just buy an audio interface and a cheap XLR mic.

Don't do that. There are plenty of good USB microphones that don't need you to faff around with shitty XLR.


I had done this in the covid lockdown days as my school was going to online classes.

Droidcam and wo-mic are some good options in this space. Droidcam if you need both a webcam and mic. Wo-mic used to work on lower android versions.

I remember plugging Droidcam to my win 7 (1gb-ram) crt tv computer and then taking an really old mostly junk phone outside and my parents were watching the monitor. It was really awesome :p

Though after an year, I ended up buying a webcam because that unused phone used to get quite heated and was really a finnicky setup to do everyday but It was a very fun experiment that I did for quite many months.

It's been a few years since covid now and I have a mac laptop now but on my desktop I still don't have webcam, and so I also use https://obs.ninja sometimes now

So TLDR if someone really wishes to do this: Droidcam,wo-mic,(https://obs.ninja + OBS live camera option)

I think its a good way to make use of old phones that you might not be using but imo battery life and its consumption seems to be the biggest hurdle imho


[TIL/xkcd#1053] scrcpy ("pronounced 'screen copy'") is "Display and control your Android device"

> mirrors Android devices (video and audio) connected via USB or TCP/IP and allows control using the computer's keyboard and mouse. It does not require root access or an app installed on the device. It works on Linux, Windows, and macOS


Its beautifully written C code. Very readable and grokable.
gblargg 8 days ago | flag as AI [–]

Another gem to avoid using a tiny phone screen even more. Worked with my old LG V20 (Android 8.0). Perfectly smooth over USB 2.0. Reasonably smooth over Wi-Fi (adb tcpip 5555 while USB is connected, then scrcpy --tcpip=192.168.1.xxx_ wirelessly).

Love how you're smiling

TIL Scrcpy is maintained by Genymobile and not Google. It's great for letting Claude Code operate your phone for doing QA tests
gsich 7 days ago | flag as AI [–]

--keep-awake, finally.
rom1v 7 days ago | flag as AI [–]

--keep-active ;)
utopiah 8 days ago | flag as AI [–]

Coincidentally enough (or not) just yesterday while skimming through the Google laptop "Googlebook" announcement and thinking "Meh... none of that is new" and wondering if I could genuinely do all that with my current Linux/GrapheneOS setup I thought "Ok... maybe the Android windows is new" and I checked more scrcpy virtual display and display id which I use for mirroring Quest headsets. I thought "OK ok Google I give you that tiny feature" only to wake up this morning, nope, not even that.

That's not a new feature. ChromeOS has had app streaming since 2023. https://chromeunboxed.com/chromebook-app-streaming-guide-lim...

Similarly, the other features for the Googlebook are just normal features from Google's Android builds. The announcement is really that there will be a Chromebook Plus class of devices running the new Android-based ChromeOS, so everything in Android now comes to these devices for free, and apparently, most of the features from the current CheomeOS will be ported too. I just hope this means that Linux app support in Android will match Crostini by the end of the year.

ramses0 7 days ago | flag as AI [–]

Ahhhh.... "when is google phasing out chromebook and chromeos and presumably near-native linux support on their machines?"

"""Court documents and executive statements reveal a plan to retire the existing ChromeOS software stack by 2034. This legacy system is expected to be replaced by a unified platform internally codenamed "Project Aluminium," which migrates ChromeOS fully onto the Android tech stack."""

...so this is effectively the first pass at "Project Aluminium" hardware? The death knell of the year of linux on the desktop? w/ 8-year EOL, that does put us right at the 2034 date.


is latency a priority? what are the obstacles to reducing it?

scrcpy new disappoints. Consistently stable, butter smooth & well maintained. Kudos to the maintainers.

s/new/never/ ? :)

We use this at work for mobile testing. One thing that tripped us up: you have to enable USB debugging first over cable, but after that switch to wireless with adb tcpip 5555 then scrcpy --tcpip. No cable needed after that. Makes demoing on a big screen during standups way less painful.