1. 22 Apr, 2021 1 commit
  2. 25 Dec, 2020 2 commits
  3. 23 Dec, 2020 1 commit
  4. 22 Dec, 2020 3 commits
    • David Helkowski's avatar
    • David Helkowski's avatar
      Add missing mobiledevice install · 240875c3
      David Helkowski authored
      This is needed to go along with the change to wdaproxy to use mobiledevice instead of libimobiledevice
    • David Helkowski's avatar
      Support for app based video · 7deef872
      David Helkowski authored
      Besides general updates for app based video, network attached devices are now supported as well.
      Use default upstream WebDriverAgent instead of custom one.
      Add "set_working_dir" config option to set the working directory on startup. This is needed to avoid some sandboxing issues on certain installations of MacOS.
      Added a new option to use ios-deploy for device detection instead of osx_ios_device_detector.
      This is needed to be able to support using network connected iOS devices.
      Added "devices" to config.json, so that screen width and height can be set ahead of time there instead of using screenshot to determine screen dimensions.
      Added "app_name" and "app_bundle_id" options to the video section of config.json, to support the new app based video.
      Corrected a bug with multiple devices reusing the primary wda instead of the one specific to the device.
      Moved to using latest ujsonin as it has the ForEach method.
      Tweaked the 8027 debug webpage to show the ports for video stre...
  5. 11 Nov, 2020 2 commits
  6. 23 Oct, 2020 1 commit
    • David Helkowski's avatar
      Fix main.m missing bug and also path with spaces glitch · 2e06cd91
      David Helkowski authored
      Build was broken by last round of changes when video_enabler was reintroduced.
      This adds new Makefile rules to fix the issue that was introduced.
      Tested a clean build and it works for the most part.
      Still there are bugs now in WDA building due to upstream changes, but the rest now builds.
      Also fixed a new error I noticed where stf-ios-provider would not build if your current PATH variable has a space in it. Fixed it as others will have this issue. ( and I had it also in this build attempt )
  7. 19 Oct, 2020 1 commit
    • David Helkowski's avatar
      Support multiple simultaneous devices; variety of other fixes · e22d9f22
      David Helkowski authored
      wdafree Makefile target, for building stf_ios_support without building WDA.
      Added back video_enabler to more consistently ensure video starts up when starting coordinator.
      Added 'auto' configuration for network and made it the default, so that the network will be selected automatically. This selects whatever the default route is on the machine. This should let the coordinator be started up properly / more easily for most users.
      Added vpnFile and vpnLabel command line options to coordinator, to make it easier to create a VPN LaunchDaemon/plist without using config.json to specify where to get the VPN config file from.
      Added -resetVideo command to coordinator, for directly initiating a "Reset Media Services" selection on the attached IOS device without doing other things as well.
      Moved cleanup_procs call above ZMQ binding, to prevent leftover processes from crashing coordinator due to ZMQ binding conflict.
      Altered process cleanup to use git...
  8. 25 Sep, 2020 2 commits
    • David Helkowski's avatar
      Simplify libimobiledevice install instructions · e551bfe0
      David Helkowski authored
      Previously libimobiledevice had to be installed from souce by hand using a pile of steps.
      These steps have been added to the Makefile and just running `make` as part of the normal install process will install it.
      You can also run the specific step to install libimobiledevice using `make libimd`
      That `make libimd` is already run by `init.sh`; both the one in the clone of stf_ios_support, and the one included into dist.tgz
    • David Helkowski's avatar
      Update readme. Add `make ou` · 005174fc
      David Helkowski authored
      Updated the readme to clarify vague steps.
      Added a new `make ou` command for easily seeing information about a developer account setup in Xcode ( including the OU of it needed for config.json )
  9. 24 Sep, 2020 2 commits
    • David Helkowski's avatar
      New `make pull`. Add libimobiledevice install to init.sh · cc6715c7
      David Helkowski authored
      Added new `make pull` command that can be used to easily pull all the various repos cloned by the project.
      Removed old mirrorfeed clone from `make clone` command as it no longer belongs and was breaking `make clone`
      Altered init.sh so that it calls `make libimd` automatically, and added a Makefile to the dist.tgz so that when you run init.sh on a provider installed via dist.tgz it will automatically build and install libimobiledevice if needed.
    • David Helkowski's avatar
      Add runner. Various fixes · 9cf202dc
      David Helkowski authored
      Created runner to make maintaining coordinator on provider machines easier.
      Fix shutdown/cleanup of ivf. Ivf was not being shutdown previously. This could cause multiple coping of ivf_pull to be running at once.
      Fix PID fetch of generic subprocesses. The previous simplistic method was failing to fetch PID because it is not available immediately after starting the subprocess. This resulted in shutdown process being unable to close processes by PID.
  10. 20 Sep, 2020 1 commit
  11. 13 Sep, 2020 1 commit
  12. 11 Sep, 2020 1 commit
    • David Helkowski's avatar
      Add remoteConnect suppot · a7649700
      David Helkowski authored
      Added support for passing a port to the device ios unit for running socat to allow remote connectivity to usbmuxd.
  13. 08 Sep, 2020 1 commit
    • David Helkowski's avatar
      Update Readme · 28348612
      David Helkowski authored
      The readme was rather out of date. Updated with latest instructions and information.
      Also tweaked Makefile to create ~/Library/LaunchAgents automatically if it does not exist.
  14. 07 Sep, 2020 1 commit
    • David Helkowski's avatar
      Fix check-versions check when Makefile is run · 4075a768
      David Helkowski authored
      `make` was checking for the version of h264_to_jpeg which is no longer checked out as it is not the primary video mechanism any more. Removed the check.
      Updated the versions being checked for all the repos. Fixed the check script a bit to give the proper instruction on which repo to pull.
      Updated gitignore a bit to ignore some temp files.
      Removed the icon for the app since the app is no longer built/available.
      Committed some new temporary certs for testing as the old ones were expired.
  15. 14 Aug, 2020 1 commit
  16. 11 Aug, 2020 1 commit
    • David Helkowski's avatar
      Prep for auto-unlock of device on coordinator start · d84d80fd
      David Helkowski authored
      Add 'unlock' CLI option for coordinator to unlock a locked device without doing anything else.
      Refactored STF reserve and release a bit.
      Added is_locked function to check lock status as well as unlock function. The addition of these functions is in preparation for automatically unlocking a locked device on startup of coordinator.
  17. 07 Aug, 2020 1 commit
    • David Helkowski's avatar
      Update server/ to use latest docker image · 7a3cbe1d
      David Helkowski authored
      Ultimate this will be changed to point at the devicefarmer namespace. For now it is pointing at livxtrm namespace because that is where the latest updates matching all the other updated repos is at.
  18. 06 Aug, 2020 1 commit
    • David Helkowski's avatar
      Update to work with latest STF docker image · 3f3b76fe
      David Helkowski authored
      Updating to add runcli to each component to startup properly. There is no longer an 'stf' alias installed in the latest image that can be used.
      Also added the new settings needed for latest STF ( the needed CLI options )
  19. 10 Jul, 2020 2 commits
  20. 03 Jul, 2020 2 commits
    • David Helkowski's avatar
      Fix bugs with STF reserve/release during auto wda restart · 3d379aa3
      David Helkowski authored
      Added test CLI for reserve/release of device in STF.
      Used it to test reserve/release, found bugs and fixed those.
      Am skipping TLS verificiation since example server setup used self-signed certs.
      TODO: Make that optional.
      Also added a port 8207 "restart on release" button to test immediate restart upon release of STF device.
      Tested that and it works properly.
    • David Helkowski's avatar
      Prevent auto WDA restart when device is reserved · ec1f9007
      David Helkowski authored
      The automatic 4 hour WDA restart will no longer occur immediately if the device it concerns is currently reserved in STF. When the device is released in STF it will happen then.
      Also updated port 8027 coordinator status webpage to show if WDA is up or not.
      Added a button to restart STF provider there also.
      Also added a button to restart ivf ( video pulling from ios device )
      Tweaked libplist and libusbmuxd versions to latest head versions.
      Updated brewser to autocreate missing pkg-config files in a more reliable way. The previous method was failing in some cases. These changes were necessary to allow latest ios-webkit-debug-proxy to be built and installed.
  21. 26 Jun, 2020 1 commit
    • David Helkowski's avatar
      Add periodic restart of WDA · c6356656
      David Helkowski authored
      Added automatic restart of WDA every 4 hours. ( configurable in config.json as timing.wda_restart and measured in minutes )
      Also added a button in the port 8027 coordinator web interface to trigger a restart of WDA
  22. 21 Jun, 2020 1 commit
    • David Helkowski's avatar
      New video method · 0e8e9cb8
      David Helkowski authored
      Added back the "old" video method but newly rewritten in the form of the ios_avf_pull repo which gets video from an IOS device using AVFoundation, converts to JPEG doing still frame detection and frame skipping, then passes the resulting jpeg frames over to ios_video_stream.
      This method has its downfalls ( only one ios device per machine and requires permissions to get video from the device resulting in a need to run in a graphical user session ), but otherwise is more broadly compatible with IOS devices. The qvh / ios_video_pull method was having issues with certain devices and was finicky in other ways.
  23. 18 Jun, 2020 1 commit
    • David Helkowski's avatar
      Improve stability overall. Reset video via WDA on start · 4bdbe373
      David Helkowski authored
      Made 'location' of a IOS provider configurable in config.json ( as stf.location )
      Refactored how sub-processes of coordinator work; they were never actually being shut down cleanly and were beginning to have weird locking issues.
      Changed WDA to be a normal sub-process rather than using WDA wrapper. There were various weird issues with the wrapper. Eventually it should be in a wrapper again but for now changed to running wdaproxy directly to avoid problems. Now that WDA wrapper is not used a bunch of code in zmq.go is no longer actually used. Have left the code there for now due to planning later to use the wrapper again.
      Added a devEvent for when WDA startup fails with a log message. It gets restarted automatically so this doesn't alter what happens, but does provide visibility to when it occurs.
      Added new code to "Reset Media Services" on the phone at the beginning of every startup. This requires WDA to be startup up temporarily in order to do this. That temporary WDA is stopped right afterwards then startup proceeds as normal. This process more than doubles the time it takes to startup a device; but it necessary to ensure video actually works on every startup.
      Tweaked launchctl a bit; when run as sudo from a user it wasn't functioning. The code needs more scrutiny and testing. TODO.
      Tweaked shutdown process to be able to always shutoff wdaproxy.
      Updated brewser to have a new "fixpc" option which will create symlinks as needed for weird brew package dependencies ( libplist and libusbmuxd )
  24. 09 Jun, 2020 1 commit
    • David Helkowski's avatar
      New testVideo mode. Better debug output. Cleaner shutdown · a332a430
      David Helkowski authored
      Added a new -testVideo CLI option that just runs the bits of stf_ios_support needed to stream video locally without the bits for STF and WDA.
      Added more debug output to help debug if the startup gets stuck somewhere.
      Fixed the shutdown process a bit to avoid hanging on shutdown ( ctrl-c )
  25. 08 Jun, 2020 1 commit
    • David Helkowski's avatar
      Fix libimobiledevice installation · f4cbfc76
      David Helkowski authored
      No longer installing libimobiledevice directly through brew as installing HEAD version of it through brew doesn't work on current fully updated macs due to openssl issues. Tweaked brewser to be able to ensure the proper updated HEAD versions of libplist and libusbmuxd that is needs are installed also.
      Make openvpn log file configurable since it was previously only hardcoded and the hardcoded location was suboptimal for some situations.
  26. 02 Jun, 2020 1 commit
    • David Helkowski's avatar
      Stabilize changes since new video update. Update Readme · 133a9500
      David Helkowski authored
      This commit resolves ongoing issues that made stf_ios_support crash and have a variety of issues since the update to the new video method. With these updates everything should now work reliably.
      Add devreset pull and build to Makefile. Devreset is needed in order to reliably startup coordinator.
      Added guards to prevent heartbeat and STF device ios units from being started multiple times overtop of each other in some situations. ( when WDA crashes / restarts )
      Optimize the way heartbeat is sent to ensure it is always sent reliably. ( mainly by using unbuffered channels )
      Use ujsonin v1.6; as 1.5 was/is broken.
      Change the log of the repeating call to ideviceinfo to Info instead of Debug; as I've seen the situation where ideviceinfo isn't functioning happen a few times and seeing it get called helps make it apparent what is going on.
      Do not write the Iframe messages coming out of h264_to_jpeg into the log. It just fills up the log with these.
      Do not write the libusb: interrupted messages from ios_video_pull into the log. They happen quite often and don't seem to have any negative effect so logging them is useless.
  27. 29 May, 2020 2 commits
    • David Helkowski's avatar
    • David Helkowski's avatar
      Stabilize new video method and startup of coordinator · 578428b9
      David Helkowski authored
      Move dist.tgz to be created in the root instead of in the offline folder.
      Let image dimensions of frameserver be configured.
      Revamp startup process to reset video streaming status so it doesn't hang when attempting to restart sometimes.
      Wait for first video frame from ios_video_stream when starting up.
      Fetch click dimensions from WDA when starting up and pass it into the STF device unit.
      A few timing tweaks so everything starts up correctly.
      Several protections from potential nil elements to prevent crashes in those odd situations of leftover messages.
  28. 20 May, 2020 1 commit
  29. 15 May, 2020 1 commit
    • David Helkowski's avatar
      Split out video pulling from ios_video_stream to ios_video_pull · aa2420f0
      David Helkowski authored
      Split out all the h264 nalu pulling code from ios_video_stream into a new sub-process and repo ios_video_pull.
      This stabilizes the video greatly.
      Also added a new config section "frameserver" that lets the frame server by configured to use https if desired.
      Changed the video streaming to the moment to go directly to the IP running ios_video_stream rather than through nginx. Will need to add some more config and update the instructions as this may not be obvious.
  30. 12 May, 2020 2 commits
    • David Helkowski's avatar
      Move to wda 2.15.0 with real device fix · 2329d614
      David Helkowski authored
    • David Helkowski's avatar
      Remove video_enabler. Clean up logs. Censor udid. · 1d1cdd5f
      David Helkowski authored
      Removed video_enabler everywhere as it is not needed with the new video streaming mechanism ( it actually interferes with the new mechanism )
      Changed detailed new interface log output to debug, and added a new info log message when the video interface becomes available.
      Censored uuid/udid in the common places it appears on main coordinator output on startup and shutdown so that people can more easily share logs for debugging without having to manually censor it out.