Android File Transfer for Linux (and macOS!)
Android File Transfer for Linux (and macOS!)
Android File Transfer for Linux — a reliable MTP client with minimalistic UI similar to Android File Transfer.
It just works™.
If you're happy with gmtp/gvfs/mtpfs or any other MTP software, you might not need this software (but give it a try!).
If you're suffering from crashes, missing tags, album covers, USB freezes, and corrupted files however, this software is right for you.
If your distribution does not provide an android-file-transfer-linux package, you can still install it on your system.
There's quite a few packages available:
brew install --cask whoozle-android-file-transfer or brew install --cask whoozle-android-file-transfer-nightlyIf you want to help me with development, click on the link below and follow the instructions. I'm working on this project in my spare time and I try to fix everything as fast as possible, sometimes adding features in realtime (more than 100 tickets closed by now). Any amount would help relieving the pain of using MTP. :D
libptp or libmtp).aft-mtp-cli.Please take a look at the FAQ if you have issues with your operating system. It's not that big, but those are the questions asked very often.
sudo apt-get install android-file-transferAndroid File Transfer for Linux is now included in Gentoo. You don't have to build anything, just run
sudo emerge -av sys-fs/android-file-transfer-linuxIf you need a FUSE mount helper to mount MTP filesystems, you have to enable the FUSE use flag, e.g. adding the following in /etc/portage/package.use (which can either be a directory or a file):
sys-fs/android-file-transfer-linux fuseYou can use the sys-fs/android-file-transfer-linux-9999 ebuild if you want the latest Git version by adding the following entry to `/etc/portage/package.accept_keywords (which can either be a directory or a file):
=sys-fs/android-file-transfer-linux-9999 **sudo pacman -S android-file-transferYou will need the Qt libraries for building the UI program. If you're planning to use only the library (Qt is not needed), you could turn the option BUILD_QT_UI off.
For Ubuntu and other Debian-based distros, use the following command:
sudo apt-get install build-essential cmake qt5-default ninja-build libfuse-dev libreadline-dev qttools5-devFor Fedora:
dnf install make automake gcc gcc-c++ kernel-devel cmake fuse fuse-devel qt-devel readline-devel libqt5-linguist-develBasically
libqtX-dev or libqt5-dev for the UI,libfuse-dev for the FUSE interface,cmake, ninja, or make for building the project.mkdir build
cd build
cmake -G Ninja ..
ninja
./qt/android-file-transfermkdir build
cd build
cmake ..
make
./qt/android-file-transferThere is a binary package that can be installed via Homebrew:
brew if you don't have it already installed.brew install homebrew/cask/whoozle-android-file-transferbrew install homebrew/cask-versions/whoozle-android-file-transfer-nightlyYou'll need Qt installed to build the GUI app. Here are the build instructions with Qt5 from Homebrew (brew install qt5):
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Applications -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5
make
make install
open ~/Applications/android-file-transfer.appsudo ninja install or sudo make install will install the program into the cmake prefix/bin directory (usually /usr/local/bin).
mkdir ~/my-device
./aft-mtp-mount ~/my-deviceRemember, if you want album art to be displayed, it must be named 'albumart.xxx' and placed first in the destination folder. Then copy other files. Also, note that FUSE could be 7-8 times slower than UI/CLI file transfer.
7z x Zune-Firmware-x86.msi in some directory, you should get the following files there:DracoBaselineCab FirmwareUpdateXml KeelBaselineCab PavoBaselineCab ScorpiusBaselineCabcabextract XXXXBaselineCab.Here's content of all cabs:
├── Draco
│ ├── EBoot.bin
│ ├── Games.cab
│ ├── nk.bin
│ └── recovery.bin
├── Keel
│ ├── EBoot.bin
│ ├── Games.cab
│ ├── nk.bin
│ └── recovery.bin
├── Pavo
│ ├── EXT.bin
│ ├── NK.bin
│ ├── Recovery.bin
│ └── ZBoot.bin
└── Scorpius
├── EBoot.bin
├── Games.cab
├── nk.bin
├── recovery.bin
└── xldr.bin*boot* or *recovery*.
Original software starts with nk.bin, then EXT or Games.
Here's an example of how I flash model 1395:aft-mtp-cli -v -d 045e:063e # finds Zune HD 16Gb (model 1395)
flash zune/Pavo/NK.bin
flash zune/Pavo/EXT.bin
device-rebootUpload Album, Upload Directory, and Upload Files.
The latter two are self-explanatory. Upload Album tries searching the source directory for album covers and sets the best available cover.Up-to-date list of all known problems and bugs are available here.
Please do not hesitate to contact me if you have any further questions. My email address is [email protected].
Android File Transfer for Linux is released under the GNU LGPLv2.1 License.
Copyright © 2015-2022 Vladimir Menshakov
No open issues yet, or sync has not completed.