AFT - Android 设备在 Arch Linux 上自动安装在哪里?

AFT - Android 设备在 Arch Linux 上自动安装在哪里?

读过这一页,我决定尝试一下AFT,所以我安装了它sudo pacman -S android-file-transfer,通过USB将设备(OnePlus 3T)连接到电脑,将其设置为“传输文件模式”,然后打开AFT。到目前为止一切顺利,我看到了设备内的所有文件夹,我可以选择文件并下载它们。我没有尝试过上传,但我认为一切都好。

只是我更喜欢在终端中浏览设备,这样我就可以利用正则表达式将内容从设备移出/移至设备。

我发现了以下内容

$ ll /dev/disk/by-id
...
usb-OnePlus_Device_Driver_5abf662b-0:0 -> ../../sr0
...

但当我尝试时

$ mkdir mount_here
$ sudo mount /dev/sr0 mount_here

我只看到这个

$ ll mount_here
total 18466
dr-xr-xr-x 1 root   root       2048 Sep  7  2016  ./
drwx------ 1 enrico enrico      912 Jun 17 15:34  ../
-r-xr-xr-x 1 root   root    6538856 Mar  3  2015 'AndroidFileTransfer(OSX).dmg'*
-r-xr-xr-x 1 root   root   12320875 Sep  5  2016  OnePlus_USB_Drivers_Setup.exe*
-r-xr-xr-x 1 root   root      45056 Jun  3  2015  OnePlus_setup.exe*
-r-xr-xr-x 1 root   root        794 Jun 30  2015  adb_config_Linux_OSX.sh*
-r-xr-xr-x 1 root   root         97 Jun  3  2015  autorun.inf*

答案1

用于adb在 CLI 中连接到您的设备。

先决条件

Settings > Developer options > USB Debugging在您的手机上启用。

安装驱动程序。

$ cd mount_here
$ ./adb_config_Linux_OSX.sh

用法

检查 adb 是否找到您的设备:

$ adb devices
List of devices attached
bada5535    device

现在您可以使用以下方式浏览您的设备:

$ adb shell
OnePlus7TPro:/ $ cd storage/self/primary
OnePlus7TPro:/storage/self/primary $ ls
Alarms Android DCIM Documents Download Movies Music Notifications Pictures Podcasts Ringtones

移动文件:

$ adb pull <path>

$ adb push <source-path> <target-path>

故障排除

如果您看到此消息:

$ adb devices
List of devices attached
bada5535    no permissions; see [http://developer.android.com/tools/device.html]

尝试以 root 身份启动 adb 服务器:

$ adb kill-server
$ sudo adb start-server

答案2

如果您的要求是

在终端中浏览设备,以便我可以利用正则表达式将内容从设备移入/移至设备。

在 arch 上,我发现 AUR 中的 smple-mptfs (https://aur.archlinux.org/packages/simple-mtpfs/)确实有效。这提供了一个命令 simple-mtpfs 及其手册页。如果读起来太多了,这里有一个由用户 teckk 在 arch wiki 的新手角发布的不言自明的脚本(https://bbs.archlinux.org/viewtopic.php?pid=1729381#p1729381

#! /usr/bin/env bash

#Script for simple-mtpfs    
PS3=$'\nSelect an option.: '

#mount directory
dir="$HOME/phone"

while :; do
    clear
    options="Quit List_Device Mount Umount"
    select opt in $options; do
        case $opt in
            Quit) clear; exit
            ;;

            List_Device) simple-mtpfs --list-devices
            ;;

            Mount) simple-mtpfs "$dir" -o enable-move; echo "Mounted to "$dir"" 
            ;;

            Umount) fusermount -u "$dir"; echo "Unmounted" 
            ;;
        esac
    done
done

请注意,libmtp 是 simple-mtpfs 的先决条件,并且在运行脚本之前,上述脚本的挂载点(默认为 $HOME/phone)必须存在。

更详细地说明:这是我在终端中输入的完整命令集(从我用来存放 AUR 包的目录开始),从“无”到满足上述要求:

sudo pacman -S libtmtp
git clone https://aur.archlinux.org/simple-mtpfs.git
cd simple-mtpfs
makepkg -si
#when prompted to confirm install of package simple-mtpfs, type "Y"

#create script droidfile with above text and make it executable

#to mount the phone at $HOME/phone
mkdir $HOME/phone
( echo 3 ; echo 1) |    droidfile

此时,我可以使用 ls 等 coreutils 以及 $HOME/phone 上的任何文件管理器。请注意,如果没有 simple-mtpfs 的“enable-move”选项,您将无法使用 mv。如果您确实启用它,速度可能会非常慢。

卸载,只需

(echo 4; echo 1) | droidfile

相关内容