Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[question] Any plans to support iOS #1691

Open
1 task done
kirk86 opened this issue Aug 20, 2020 · 28 comments
Open
1 task done

[question] Any plans to support iOS #1691

kirk86 opened this issue Aug 20, 2020 · 28 comments

Comments

@kirk86
Copy link

kirk86 commented Aug 20, 2020

I know this kind of has been asked before but I thought maybe something might have changed during that time and now. Sorry if this annoying to you, but, I was wondering if you are aware of any other FOSS alternatives that are similar to scrcpy but also support iOS devices, or, are there any plans to support iOS devices? This is something much need in having a FOSS alternative for iOS devices.

@alexandre-janniaux
Copy link

Hi,

Similar work has been done for that, but it's a full reverse, not just using a tool like adb:

https://github.com/danielpaulus/quicktime_video_hack/blob/master/doc/technical_documentation.md

So it would first need the integration of this work in a tool using libimobiledevice/usbmuxd, and then it probably makes sense to keep libimobiledevice tools as a client instead of scrcpy.

It lacks the input things, but maybe they could be executed through XCTest somehow.

@kirk86
Copy link
Author

kirk86 commented Aug 20, 2020

@alexandre-janniaux Thanks for the reference. Although I have no idea how things work behind the scenes but generally I do agree with

integration of this work in a tool

there are generally many isolated FOSS projects that would make sense to be integrated in a unifying tool.

For instance, free-sidecar enables sidecar for older devices which got blacklisted from apple by default.

It would certainly be interesting to have them under a unifying tool which eventually allows to extend or mirror the iOS device to your mac/laptop.

@alexandre-janniaux
Copy link

alexandre-janniaux commented Aug 21, 2020

Hi,

Although I have no idea how things work behind the scenes

It's basically an iOS service running on the phone, probably providing the features for ReplayKit : https://developer.apple.com/documentation/replaykit

It's also what quicktime is using when recording an iOS device screen from a MacOSX computer.

there are generally many isolated FOSS projects that would make sense to be integrated in a unifying tool.

Sure, but scrcpy is very specific to Android. I tried to determine with scrcpy's author whether it would be worthy back then, but scrcpy is mostly an adb link, a little ffmpeg player, and hacks and java payload to transfer audio and input. It would be completely different for iOS so it might not be a good idea to unify this within scrcpy (maybe in a later tool if a libscrcpy gets created) and unification would'nt bring any benefit. Better integration to the system can be done by upper layer providing a user interface for both scrcpy and whatever tool can bring this to iOS instead. It will probably not be the same community maintaining the iOS counterpart too.

Also, integrating the work mentioned above within scrcpy means that it won't work on macosx (where the device is already owned by the system usbmuxd iirc) and won't work if you have usbmuxd installed, meaning that you typically can't have file transfer and video at the same time.

So the core of this must be in usbmuxd, which makes libimobiledevice the primary candidate for the client part, and thus a libimobiledevice client maintained by the same people the best candidate for a replaykit tool.

Then, a new project implementing xctest or other to have all the hacks scrcpy is doing on iOS is probably a good idea, but there would be almost no code sharing with scrcpy since it's a whole different library (except ffmpeg playback).

Thanks for the free-sidecar link, it's actually very interesting for me :D

@kirk86
Copy link
Author

kirk86 commented Aug 21, 2020

Thanks for the detailed explanation, at least now I get the pros and cons of each approach.

@0xGaryWu
Copy link

Wormhole (https://er.run) did the iOS work. cast and control iPhone from PC or Mac.

@rom1v rom1v mentioned this issue Sep 6, 2020
@kfatehi
Copy link

kfatehi commented Feb 11, 2021

@liangwu I tried wormhole in response to your note. Screen mirror worked but it failed to provide me with control via its bluetooth hack... might just be my old PC's bluetooth hardware version is too old.

I am also investigating jailbreak universe and found this https://github.com/coolstar/RecordMyScreen which seems to have really good code that seems apropo for a scrcpy port core, to my naive eyes anyway.

@0xGaryWu
Copy link

0xGaryWu commented Feb 22, 2021

@liangwu I tried wormhole in response to your note. Screen mirror worked but it failed to provide me with control via its bluetooth hack... might just be my old PC's bluetooth hardware version is too old.

I am also investigating jailbreak universe and found this https://github.com/coolstar/RecordMyScreen which seems to have really good code that seems apropo for a scrcpy port core, to my naive eyes anyway.

YES, It Works when your bluetooth adapter Supports Bluetooth Low Energy Peripheral Role. Here to check if your Windows PC supports or not. you could also buy one bluetooth dongle to support it.amazon recommended.

@kirk86
Copy link
Author

kirk86 commented Feb 24, 2021

@liangwu

Wormhole (https://er.run) did the iOS work. cast and control iPhone from PC or Mac.

This didn't work for me, I tried to mirror screen from ipad 2 2011 to my late 2015 macbook but I got nothing no video/audio nothing got mirrored.

@0xGaryWu
Copy link

@liangwu

Wormhole (https://er.run) did the iOS work. cast and control iPhone from PC or Mac.

This didn't work for me, I tried to mirror screen from ipad 2 2011 to my late 2015 macbook but I got nothing no video/audio nothing got mirrored.

Try wireless connection, keep your Mac and iPad in same network.

@kirk86
Copy link
Author

kirk86 commented Feb 25, 2021

I did, but that didn't work either, I believe it might have to do with the fact that the ipad is old, 2011.

@guanzhangrtk
Copy link

I did, but that didn't work either, I believe it might have to do with the fact that the ipad is old, 2011.

Issue could be your macOS instead of iPad, this is from their FAQ
image

@kirk86
Copy link
Author

kirk86 commented Apr 11, 2021

I think I have tried all of that but still nothing, I'll give it another go but my hopes are really low.
BTW I'm running Big Sur version 11.0.1.

@guanzhangrtk
Copy link

guanzhangrtk commented Apr 11, 2021

I think I have tried all of that but still nothing, I'll give it another go but my hopes are really low.
BTW I'm running Big Sur version 11.0.1.

We're probably straying off-topic here but if you need support for Wormhole you can look for their Discord. I'll just leave it at that, good luck!

P.S. Another app you may look into is KeyPad: https://apps.apple.com/us/app/keypad-keyboard-and-mouse/id1491684442. While it currently doesn't support screen mirroring you can easily use QuickTime movie recording and it supports keyboard/mouse via Bluetooth.

@0xGaryWu
Copy link

@liangwu I tried wormhole in response to your note. Screen mirror worked but it failed to provide me with control via its bluetooth hack... might just be my old PC's bluetooth hardware version is too old.

I am also investigating jailbreak universe and found this https://github.com/coolstar/RecordMyScreen which seems to have really good code that seems apropo for a scrcpy port core, to my naive eyes anyway.

if you have jailbreaked your iOS devices, try Blackhole App(https://er.run/blackhole)

@0xGaryWu
Copy link

0xGaryWu commented Apr 12, 2021

I think I have tried all of that but still nothing, I'll give it another go but my hopes are really low.
BTW I'm running Big Sur version 11.0.1.

If you still would to try again, you could join their feedback telegram(https://t.me/joinchat/NXEoQRtzLKZKTD9X2XFtRQ) and find it out

@krishtoautomate
Copy link

any one point me to piece of code to control ios devices with bluetooth with touch-assist enabled.

both vysor and wormhole are paid. better to look for open-source

@guanzhangrtk
Copy link

@krishtoautomate You can try KeyPad, it's pretty basic but should do the job, but it's only available for macOS.

Alternatively, if you can work without the Bluetooth requirement, you can try Airtest IDE or Appium. Those are used for iOS device automation but performance wise they are pretty slow.

@wsvn53
Copy link

wsvn53 commented Jul 24, 2021

I've just released the first version of Scrcpy.app for iOS, which is based on scrcpy v1.8, you dont need to jailbroken your iOS device. But you may need to build or re-codesign to install on your iPhone now, because the AppStore version is under reviewing.

For more detail you can visit my opensource project: https://github.com/wsvn53/scrcpy-ios

@krishtoautomate
Copy link

@guanzhangrtk KeyPad is good but need to expose apis to integrate with scrcpy

@guanzhangrtk
Copy link

@krishtoautomate Yeah I've asked the author for some APIs, I guess he's still working on it. Perhaps you can also do the same :)

@AD-Paladins
Copy link

Wormhole (https://er.run) did the iOS work. cast and control iPhone from PC or Mac.

Nice!
Without JailBreak you hava a screen mirror, JailBreaking the iPhone you get control from the mac (did't tried in Win PC)

@krishtoautomate
Copy link

Screen mirror can be done my integrating ios-minicap which is in c++ and can be easily integrated to scrcpy

@rom1v rom1v mentioned this issue Apr 10, 2022
1 task
@fleytman
Copy link

fleytman commented Apr 20, 2022

I was also looking for scrcpy analogues
I found an old project: https://github.com/testingbot/ios-vnc . Now there are problems with its building (but solvable) and it depends on the old web driver. But it seems to have worked once upon a time and its code might be useful
There is also a way to output the screen with ios using idb: https://fbidb.io/docs/video

From what I tried and it worked:
jailbreak + blackhole, but it's paid, plus it requires manual action (although you can automate it)
jailbreak + https://github.com/julioverne/screendump, but the transmission quality leaves much to be desired

UPD.
I haven't tried it yet, but maybe that's what we're looking for
https://github.com/nanoscopic/controlfloor
https://github.com/nanoscopic/ios_remote_provider

UPD2. All the projects, that I found:

@guanzhangrtk
Copy link

@fleytman Just use Airtest IDE if you are looking for control. It works perfectly fine.

@fleytman
Copy link

@guanzhangrtk It works as other appium webdriver agent solutions, but need run ide.

@truebit
Copy link

truebit commented Aug 2, 2022

https://github.com/danielpaulus/quicktime_video_hack
Here is the iOS video hack for screening cast feature, I think scrcpy could implement the cast feature first😄

@adibaulia
Copy link

I was also looking for scrcpy analogues I found an old project: https://github.com/testingbot/ios-vnc . Now there are problems with its building (but solvable) and it depends on the old web driver. But it seems to have worked once upon a time and its code might be useful There is also a way to output the screen with ios using idb: https://fbidb.io/docs/video

From what I tried and it worked: jailbreak + blackhole, but it's paid, plus it requires manual action (although you can automate it) jailbreak + https://github.com/julioverne/screendump, but the transmission quality leaves much to be desired

UPD. I haven't tried it yet, but maybe that's what we're looking for https://github.com/nanoscopic/controlfloor https://github.com/nanoscopic/ios_remote_provider

UPD2. All the projects, that I found:

any update for newer ios 16.3.1 and macOS Ventura? i have been trying these method but nothing helps

@fatahillahardhi
Copy link

fatahillahardhi commented Apr 3, 2023

I was also looking for scrcpy analogues I found an old project: https://github.com/testingbot/ios-vnc . Now there are problems with its building (but solvable) and it depends on the old web driver. But it seems to have worked once upon a time and its code might be useful There is also a way to output the screen with ios using idb: https://fbidb.io/docs/video
From what I tried and it worked: jailbreak + blackhole, but it's paid, plus it requires manual action (although you can automate it) jailbreak + https://github.com/julioverne/screendump, but the transmission quality leaves much to be desired
UPD. I haven't tried it yet, but maybe that's what we're looking for https://github.com/nanoscopic/controlfloor https://github.com/nanoscopic/ios_remote_provider
UPD2. All the projects, that I found:

any update for newer ios 16.3.1 and macOS Ventura? i have been trying these method but nothing helps

yep me too guys, any update? mostly on the other app's or other tools only can screen sharing not fully control the devices

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests