tweaselORG / appstraction

An abstraction layer for common instrumentation functions (e.g. installing and starting apps, setting preferences, etc.) on Android and iOS.
MIT License
6 stars 1 forks source link

iOS: Use `iproxy` instead of having the user specify an IP address for SSH #43

Closed baltpeter closed 1 year ago

baltpeter commented 1 year ago

For iOS, the user currently has to specify the device's IP when instantiating the platform API object. That is already quite annoying.

It will get even more annoying with #1. For the other things, we'll likely need the UDID instead of the IP. And requiring two device IDs really isn't great.

We could avoid this problem if we used iproxy forward the SSH port to the host (see: https://kb.froglogic.com/squish/ios/howto/ios-automation-usb-cable-connection/ or https://iphonedev.wiki/index.php/SSH_Over_USB).

And we're already depending on libimobiledevice anyway.

baltpeter commented 1 year ago

And we're already depending on libimobiledevice anyway.

Though, on Ubuntu this is split across multiple packages. To get iproxy, I had to install libusbmuxd-tools.

baltpeter commented 1 year ago

While working on this, I noticed another bug: #53

zner0L commented 1 year ago

Since the root user doesn’t have a password set at the intial setup, and I don’t want to expect our users to log in via mobile and set a password for root, we need some way to escalate a mobile login session to a more priviledged one. There are three options I can think of:

I think I prefer the last option, but what do you think, @baltpeter?

baltpeter commented 1 year ago

The amount of work that's going to cause is a bit unfortunate, but I guess the last option is fine.