• Re: How to copy files both ways anywhere you want to/from iPhone/iPad o

    From Andy Burnelli@21:1/5 to VanguardLH on Tue Jan 18 03:34:46 2022
    XPost: misc.phone.mobile.iphone, alt.os.linux

    On Mon, 17 Jan 2022 17:48:10 -0600, VanguardLH wrote:

    Define filters to hide/ignore them.

    Your choice of NNTP client does not identify itself in the headers of
    your posts (there is no User-Agent header), so I can't check if whatever
    NNTP client you use even has filtering, and if those filters can use
    regex to more accurately target the unwanted post[er]s.

    Marek Novotny (bless his soul) wrote my newsreader.
    It's custom. It uses vi as the editor.
    And telnet as the interface.

    The problem with ignoring the trolls is that I'm human.
    It bothers me when they claim the only way to do things is the way Apple set
    it up but they have _never_ in their entire lives ever used Linux or
    Android.

    So they don't know how _beautiful_ two-way file transfer can be.
    They simply lie that iTunes can do it (and yet it can't).

    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/L8b18Zmx/files02.jpg> iOS "Files" does nothing useful
    <https://i.postimg.cc/d3SGkdgr/files03.jpg> Android is two way, everything
    <https://i.postimg.cc/QMk7tvZW/files04.jpg> Ubuntu is two way, everything
    <https://i.postimg.cc/qqg61Rh8/files05.jpg> Ubuntu, movies _to_ iOS on USB
    <https://i.postimg.cc/Jhmy9KH7/files06.jpg> Ubuntu uses iFuse for its magic
    <https://i.postimg.cc/KjK4nHwf/files07.jpg> Ubuntu is two-way, everything
    <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)

    https://github.com/libimobiledevice/ifuse/issues/31
    "This is a utility for *nix systems, I'm not aware of any versions
    ported to windows."
    That response was back on Jan 21, 2017. Maybe it's changed since then.

    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>

    https://en.wikipedia.org/wiki/Filesystem_in_Userspace
    "FUSE was merged into the mainstream Linux kernel tree in kernel
    version 2.6.14"
    So, the FUSE module was ported and bundled in Linux distros since then.

    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>

    https://github.com/libimobiledevice/ifuse
    "This project allows mounting various directories of an iOS device
    locally using the FUSE file system interface." https://github.com/libimobiledevice
    "A cross-platform protocol library to access iOS devices."

    Linux <-> iFUSE + libimobiledevice -> iOS

    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.


    https://github.com/libimobiledevice
    Says it is cross-platform, but Windows is not included.

    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.


    https://libimobiledevice.org/#downloads
    Well, they have a "Communities" page, you you end up at the Github
    projects to use their Issues page, but that's really a bug/ticket
    reporting communication venue. Yet, as per my first citing, users do
    ask questions there.

    https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel
    That's an [e-]mailing list. Apparently none of their Github projects
    have a peer community or forum.

    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. I hate writing code.
    Sure I've written plenty of 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.

    I only write code when I absolutely must.
    And I shouldn't have to write code just to get an iOS device to be un-dumb.

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)