tweaselORG / appstraction

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

Automate installation of libimobiledevice #71

Closed baltpeter closed 1 year ago

baltpeter commented 1 year ago

With andromatic and #69, we're now automatically installing the Android dev tools. Wouldn't it be fun to have that for iOS, too?

In terms of host dependencies on iOS, there's pretty much only libimobiledevice and the device drivers on Windows. Let's see whether we can do something similar for the former.

baltpeter commented 1 year ago

In particular, we really only need ideviceinstaller and ideviceinfo so far:

image

baltpeter commented 1 year ago

The GitHub releases (https://github.com/libimobiledevice/libimobiledevice/releases/tag/1.3.0, https://github.com/libimobiledevice/ideviceinstaller/releases/tag/1.1.1) unfortunately only have the source code, no binaries.

baltpeter commented 1 year ago

Brew also builds from source:

https://github.com/Homebrew/homebrew-core/blob/40033705868b2cdd09e2e6a3b01d39ec4b2c7545/Formula/ideviceinstaller.rb

baltpeter commented 1 year ago

Amusingly enough, this would actually be easiest on Windows. :D In https://github.com/tweaselORG/meta/issues/25, I found https://github.com/L1ghtmann/libimobiledevice/releases, which you only need to download and extract.

baltpeter commented 1 year ago

The libimobiledevice CI actually even produces archives, but only uploads those as artifacts and not as releases. And those are deleted after 90 days. :/

But even if we did have those, we would still need the other dependencies like libplist3. And they all don't just have binaries but also shared libraries (and maybe other important stuff that I missed?).

baltpeter commented 1 year ago

Oh, and before I forget: We also need libusbmuxd6. :|

baltpeter commented 1 year ago

This really looks like it will take more time than I can spend on it right now.

baltpeter commented 1 year ago

One more thought: Doesn't palera1n bundle limd?

baltpeter commented 1 year ago

Looks like they built their own static binaries and bundled them in the repo. At least for the legacy version, I haven't looked into the rewrite yet (though I guess they would target the limd libraries instead of CLI for that?).

https://github.com/JonathonReinhart/staticx looks interesting.

baltpeter commented 1 year ago

Not necessary anymore with https://github.com/tweaselORG/appstraction/pull/84.