On Mon, 17 Jan 2022 00:44:44 -0600, VanguardLH wrote:
> No, I never used [i]FUSE, or ever had a need to mount a volume as an
> interface on one host to connect to a file system under iOS.
Thanks for trying to help out where almost nobody on Usenet knows what I
know about this (from experience only) and even then I admit I know almost
nothing since I'm not a developer - I'm just a user.
I use whatever works, where I _prove_ what I do with screenshots since I'm
a big believer in "pictures or it didn't happen" (especially given the Apple
kooks must think everyone is a bullshitter by the way they brazenly lie).
For those who haven't tried to copy files _to_ the entire visible file
system of a mobile device, you might not know what you can learn from these
<
https://i.postimg.cc/NFkXsJ0X/files01.jpg> iOS/Win is 1-way & DCIM only
<
https://i.postimg.cc/3xcCBngd/files08.jpg> iOS is just a dumb brick on Win
<
https://i.postimg.cc/mDx3xkp4/files09.jpg> iOS only DCIM & only 1-way copy
<
https://i.postimg.cc/9MGdc2s7/files10.jpg> Android is 2-way fast over USB
<
https://i.postimg.cc/cChf8mx1/files11.jpg> iOS requires hacks just to copy
<
https://i.postimg.cc/pVJf72fN/files12.jpg> iOS hacks very often will fail
Note that I've tried every way possible, where those screenshots show many
of the huge differences in how each mobile device handles file copy on PCs.
a. iOS connected to Linux works perfectly (no extra software needed)
b. Android connected to Linux or Windows works perfectly also
c. It's just iOS connected to Windows that is a horrid clusterfuck
That's the problem we can solve but it will take work because we need an
iFuse port that's working on Windows and Apple will never provide a working
solution for full two-way file transfer without restriction to the entire
visible file system which we already have for all platforms except iOS.
> The below
> is just what I read. I'm sure you won't find respondents here using a
> interface and protocal that attempts to connect the host OS file system
> to one under iOS using iFUSE, libimobiledevice, and all the
> dependencies.
All I need is _one_ person who has done it since I can follow in his footsteps
(which happens rather frequently because I do believe there are people who
know a lot more than I do about any question I may ask).
> Plus, this isn't really a programming venue, but about
> end-user freeware products; i.e., wrong community to ask (free doesn't
> mean this freeware community will know about compiling of source code).
Given the Canonical team has already included a Linux port of iFuse in their
Ubuntu distros, what we need to find, as Paul suggested, is a Windows port.
<
https://github.com/libimobiledevice/ifuse>
"A fuse filesystem implementation to access the contents of iOS devices."
Features
This project allows mounting various directories of an iOS device locally
using the FUSE file system interface.
Some key features are:
*Media*: Mount media directory of an iOS device locally
*Apps*: Mount sandbox container or document directory of an app
*Browse*: Allows to retrieve a list of installed file-sharing enabled apps
*Implementation*: Uses libimobiledevice for communication with the device
*Jailbreak*: Mount root filesystem on jailbroken devices
(requires AFC2 service)
Yup. I've found a few links indicating libimobiledevice may be ported to Win
but I have yet to test it out as I was asking first to find someone who has
_already_ run these libimobiledevice ports on Windows before me.
Paul already explained that the Android-style solution Microsoft won't give.
But if we ask this next question, we may find the solution that may exist.
Q: *What gives Linux read/write access to/from iOS over USB?*
One possible answer is 'libimobiledevice' <
https://libimobiledevice.org/>
"A cross-platform FOSS library to communicate with iOS devices natively."
Apparently these FOSS source apps provide the necessary file transfer tools.
1. ifuse 1.1.4
*A fuse filesystem to access the contents of iOS devices*
Dependencies: {libimobiledevice,libplist,libfuse}
<
https://github.com/libimobiledevice/ifuse/releases/download/1.1.4/ifuse-1.1.4.tar.bz2>
2. libimobiledevice 1.3.0
*A cross-platform protocol library to communicate with iOS devices*
Dependencies: {libusbmuxd,libplist,libgnutls,libtasn1,openssl}
<
https://github.com/libimobiledevice/libimobiledevice/releases/download/1.3.0/libimobiledevice-1.3.0.tar.bz2>
3. ideviceinstaller 1.1.1
*Manage apps of iOS devices*
Dependencies: {libimobiledevice,libplist,libzip}
<
https://github.com/libimobiledevice/ideviceinstaller/releases/download/1.1.1/ideviceinstaller-1.1.1.tar.bz2>
4. idevicerestore 1.0.0
*Restore/upgrade firmware of iOS devices*
Dependencies: {libirecovery,libimobiledevice,libplist,libcurl,libzip,openssl,zlib}
<
https://github.com/libimobiledevice/idevicerestore/releases/download/1.0.0/idevicerestore-1.0.0.tar.bz2>
5. libusbmuxd 2.0.2
*A client library to multiplex connections from and to iOS devices*
Dependencies: {libplist}
<
https://github.com/libimobiledevice/libusbmuxd/releases/download/2.0.2/libusbmuxd-2.0.2.tar.bz2>
6. usbmuxd 1.1.1
*A socket daemon to multiplex connections from and to iOS devices*
Dependencies: {libimobiledevice,libplist,libusb}
<
https://github.com/libimobiledevice/usbmuxd/releases/download/1.1.1/usbmuxd-1.1.1.tar.bz2>
7. libirecovery 1.0.0
*Library & utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, & Linux*
Dependencies: {libusb}
<
https://github.com/libimobiledevice/libirecovery/releases/download/1.0.0/libirecovery-1.0.0.tar.bz2>
8. ibideviceactivation 1.1.1
*A library to handle the activation process of iOS devices*
Dependencies: {libimobiledevice,libplist,libcurl,libxml2}
<
https://github.com/libimobiledevice/libideviceactivation/releases/download/1.1.1/libideviceactivation-1.1.1.tar.bz2>
9. libplist 2.2.0GitHub Workflow Status
*A library to handle Apple Property List format in binary or XML*
Dependencies: {none}
<
https://github.com/libimobiledevice/libplist/releases/download/2.2.0/libplist-2.2.0.tar.bz2>
Yup. See my screenshots in the beginning.
I've been using iFuse on Canonical's Ubuntu for years and it works
EXACTLY like we need it to work.
a. You plug the iOS device into the PC USB port
b. You have full access to the entire visible file system
c. Both read and write
The goal is to get _that_ on Windows!
> Says a FUSE module is available for Windows, but that doesn't mean iFUSE
> ever got ported to interface to the Windows file systems.
That's the problem I'm trying to find out if someone solved it already!
But I'm not a developer so I can only follow using someone else's binaries!
*How to build libimobiledevice on Windows?*
<
https://github.com/libimobiledevice/libimobiledevice/issues/582>
Yup. This works perfectly.
>
> but presumably you're trying to do:
>
> Windows -> iFUSE + libimobiledevice -> iOS
Yup. This would be our utopia.
>
> libimobiledevice is just the protocol to communicate between one host
> (Linux, Windows) and an iOS host; i.e., differentiate between TCP to
> connect hosts versus FTP as the protocol to commit actions on the
> endpoint hosts. That's just the communication once the interface
> between hosts is established.
>
> You still need to get a FUSE module, like iFUSE, onto the endpoint OS'es
> through which libimobiledevice can communicate. You need a FUSE module,
> like iFUSE, on a Windows host (to use libimobiledevice through the FUSE
> module).
There are a bunch of dependencies for libimobiledevice & iFuse for sure.
1. ifuse 1.1.4
Dependencies: {libimobiledevice,libplist,libfuse}
2. libimobiledevice 1.3.0
Dependencies: {libusbmuxd,libplist,libgnutls,libtasn1,openssl}
3. ideviceinstaller 1.1.1
Dependencies: {libimobiledevice,libplist,libzip}
4. idevicerestore 1.0.0
Dependencies: {libirecovery,libimobiledevice,libplist,libcurl,libzip,openssl,zlib}
5. libusbmuxd 2.0.2
Dependencies: {libplist}
6. usbmuxd 1.1.1
Dependencies: {libimobiledevice,libplist,libusb}
7. libirecovery 1.0.0
Dependencies: {libusb}
8. ibideviceactivation 1.1.1
Dependencies: {libimobiledevice,libplist,libcurl,libxml2}
9. libplist 2.2.0GitHub Workflow Status
Dependencies: {none}
>
>
https://github.com/libfuse/libfuse
> "FUSE (Filesystem in Userspace) is an interface for userspace programs
> to export a filesystem to the Linux kernel."
>
> No mention that libfuse got ported to use under Windows.
Drat.
Drat.
>
>
https://github.com/libimobiledevice/libimobiledevice
> "libimobiledevice is a cross-platform software library that talks the
> protocols to interact with iOS devices."
> Yet the instructions don't mention how to install on a Windows host.
> Started back in 2007, and yet:
> "Documentation about using the library in your application is not
> available yet."
>
>
https://libimobiledevice.org/
> "A cross-platform FOSS library written in C to communicate with iOS
> devices natively."
> Maybe you're expected to compile the C code to create the lib on the
> host OS.
> "It has already been built and run on Linux, Mac, Windows, Android
> and embedded ARM SoCs."
> "built" means you have to build it by compiling the C code.
>
>
https://libimobiledevice.org/#downloads
> For libimobiledevice to work, you'll also have to get its dependencies
> on Windows (libusbmuxd, libplist, libgnutls, libtasn1, openssl). I
> didn't see them provide a compiled bundle to operate under Windows, or
> under any OS. You get the code, and you compile it.
I'm not the person to be running Makefiles on Windows.
I'm just not.
Drat.
> At the iFUSE Github project, I didn't see an installable bundle was
> built for Windows. Linux users are lucky in that iFUSE, and its
> dependencies, got included in the distro.
Yeah. Bummer on the Windows port.
Thanks for looking as that's all that we need! Sigh.
>
>
https://github.com/libimobiledevice/ifuse/issues?q=windows
> A search in their Issues page didn't bring up how to get iFUSE
> compiled on, or installed, under Windows - other than the first cited
> article in my reply where the answer was iFUSE has no built .exe, lib,
> or other component to use under Windows. There are so many
> dependencies to iFUSE and libimobiledevice that it will a lot of
> hit-and-miss trying to get them to all be present and work under
> Windows. A response to that "issue" article has someone say you can
> get iFUSE working by using Dokany.
>
>
https://github.com/dokan-dev/dokany
> "User mode file system library for windows with FUSE Wrapper"
> and
> "When you want to create a new file system on Windows, other than FAT
> or NTFS, you need to develop a file system driver. Developing a device
> driver that works in kernel mode on windows is extremely technical. By
> using Dokan, you can create your own file systems very easily without
> writing device drivers. Dokan is similar to FUSE (Linux file system in
> user space) but works on Windows. Moreover, dokany includes a FUSE
> wrapper that helps you to port your FUSE filesystems without changes."
>
> Looks like you'll be asking LOTS of questions to those Github projects
> via their Issues page on just what all you need to compile the code for
> all the projects (to also include the dependencies), and also using
> Dokany as the FUSE wrapper to get Windows file systems linked to the iOS
> file systems.
The problem is I'm not a developer.
Sure I've written code (Fortran before the IV days for example).
And COBOL. And PL/1. And IBM Assembly Language. etc.
But that was in the sixties and seventies.
> Seems it'd be easier to use a VMM (Virtual Machine Manager), like
> Virtualbox or VMware Player, to run a Linux distro that already has all
> the [i]FUSE, libimobiledevice, and dependencies under Linux running as a
> guest OS in a VM on Windows. However, anything running inside a VM will
> be slower than running on the native/host OS, and I saw users reporting
> iFUSE was slow, so you'll be running slow under slower.
I can't disagree that one of the three Linux implementations will work.
1. Dual boot Windows to Linux without Hibernation
(this allows all three simultaneously, iOS, Windows & Linux)
2. WSL inside of Windows 10
This may allow access to the USB ports.
3. Linux inside a VM
This amy allow access to the USB ports.
But _before_ I resort to running Linux inside of Windows,
I was hoping to find an existing libimobiledevice port on Windows.