如何从 Ubuntu 终端访问 afc:// iOS 文件?

如何从 Ubuntu 终端访问 afc:// iOS 文件?

我正在尝试从 gnome-terminal 访问 iOS 文件。这是这个问题,因为答案不再适用于最近的 iOS 和最近的 Ubuntu。我也试过此解决方案无济于事。

我正在使用 iPhone 8 运行 Ubuntu 19.10。

我可以在 nautilus 中看到路径为的文件,afc://3bea74ae860d493803664babbaeac93614091e43/但是无法cd在终端中找到该路径。

我已经安装了,ifuse但是手动安装和访问只会导致 IO 错误。

如何从终端访问我的 iOS 文件?

答案1

在终端中运行此命令:

cd /run/user/1000/gvfs/afc:host=3bea74ae860d493803664babbaeac93614091e43

对于其他人来说,如果你检查这个目录,你会发现你的苹果设备(如果它已安装):

cd /run/user/1000/gvfs/afc\:host\=????????????????????????????????????????

答案2

在我看来,iOS / iPhone 文件有三种类型:

  • gphoto2://文件:这些文件可以轻松访问(通过 GUI 文件管理器,也可能通过终端程序);它们是“DCIM”文件夹中的图像/视频文件。(如果您在访问这些文件时遇到问题,请考虑通过 重新启动 usbmuxd sudo systemctl restart usbmuxd
  • afc://文件:我研究了几个小时,但还是没找到通过终端程序真正访问它们的方法。不过,你仍然可以通过本地网络将它们从 iPhone 传输到 Linux 机器。请参阅下文了解方法(应通过本地网络而不是互联网传输文件)。
  • 既不是文件gphoto2://也不是afc://文件:这些文件可以通过 ifuse 正确安装 iPhone 来访问。

访问看似不是gphoto2://文件的afc://文件

  1. 跑步sudo apt install libimobiledevice6 libimobiledevice-utils
  2. 跑步idevicepair pair
  3. 跑步usbmuxd -f -v
  4. 跑步sudo apt install ifuse
  5. 确保操作idevicepair pair有效:你需要解锁 iPhone 并在信任对话框中选择“是”
  6. 跑步sudo mkdir /mnt/iphone
  7. 跑步sudo su
  8. 跑步ifuse /mnt/iphone

您将能够看到基本上隐藏的文件,例如“/mnt/iphone/PhotoData/Thumbnails/V2/DCIM”中的文件(如果您使用 iPhone 拍照或录制视频)。奇怪的是,挂载点文件夹(例如“iphone”)可能会被 PCManFM 1.3.1 视为“inode/x-corrupted-type”。

afc://通过 iPhone 应用程序和 SSH访问文件

此列表基于https://medium.com/geekculture/the-iphone-to-linux-airdrop-alternative-you-need-804a082fec9e(“SSH”) 对我有用:

  1. sudo apt update -y && sudo apt install openssh-server -y && sudo systemctl enable --now ssh如果尚未安装/运行/启用这些程序,请运行
  2. 跑步sudo vim /etc/ssh/sshd_config或者sudo nano /etc/ssh/sshd_config(如果你喜欢纳米)
  3. 将文本更改为#PubkeyAuthentication noPubkeyAuthentication no
  4. 将文本更改为#PasswordAuthentication noPasswordAuthentication no
  5. 将其添加到纯文本文件的底部:
# Allow from devices on most common WiFi ranges
Match Address  192.168.1.*
    PasswordAuthentication yes
    PubkeyAuthentication yes
Match Address  192.168.0.*
    PasswordAuthentication yes
    PubkeyAuthentication yes
# Allow from devices on iOS hotspot range
Match Address 172.20.10.*
    PasswordAuthentication yes
    PubkeyAuthentication yes
  1. 保存文本文件
  2. 跑步sudo systemctl restart sshd.service
  3. 从以下位置安装 FTPManagerhttps://apps.apple.com/us/app/ftpmanager-ftp-sftp-client/id525959186
  4. 将 FTPManager 连接到您的计算机的本地 IP 地址
  5. 运行以下命令查看 IP 地址ifconfig | grep -E "inet (192.168.[0-9].[0-9]+|172.20.10.[0-9]+) " | tail -1 | awk '{print $2}'
  6. 在将文件从 iPhone 复制或移动到 Linux 计算机之前,请设置 FTPManager 以记住 SSH 登录。您应该能够将gphoto2://文件和afc://文件夹复制到您的 Linux 计算机。
  7. 传输文件。请参阅https://www.skyjos.com/ftpmanager/help/help_main.php?section=file_transfer如何传输图片、视频或任何其他类型的文件。

我知道这个解决方案没有显示如何afc://通过 CLI 访问,但它确实解决了 OP 中提出的问题:“手动安装和访问只会导致 IO 错误”。

您可能需要越狱的 iPhone(我没有)才能afc://通过 CLI 进行访问。来自ifuse --help

--root mount root file system (jailbroken device required)

Example:

$ ifuse /media/iPhone --root

This mounts the root filesystem of the first attached device on
this computer in the directory /media/iPhone.

上述方法对我有用:

$ ideviceinfo
[...]
ProductName: iPhone OS
ProductType: iPhone8,1
ProductVersion: 15.5
ProductionSOC: true
ProtocolVersion: 2
[...]
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal

(@Gruzzles 的回答并没有真正的帮助,但还是有一点点帮助。)

相关内容