13

Please help, I need to transfer 148GiB worth of data from my Android phone to a computer.

My phone is Oppo A96 and it has run out of space:

enter image description here

It is filled screen recording videos, and they collectively take 148GiB of space, and I am going to move the files to my 4TB HDD (3725.29 GiB capacity), so that I can free up the space, and I can edit and compress the videos before I post them to my Youtube channel.

Of course I have a USB data cable, so I inserted one end of the cable to the phone and the other to a USB 3.0 port on the computer, to connect the phone to the computer, and selected "Transfer Files" in the prompt, and started copying the files using Windows Explorer:

enter image description here

enter image description here

It is taking ages.

It takes more than 4.5 hours to complete the transfer, I have cancelled the operation, I can't wait 4.5 hours just for the move operation to complete, and even in the unlikely case I could, by the time the operation completes I wouldn't be able to access the computer, it is some "technical difficulty" I would not go into here.

So I opened Task Manager and found:

enter image description here

Windows Explorer only moves the files at a miserable 37.1 MB/s...

The theoretical transfer speed of USB 3.0 is 4.8 Gbit/s:

4.8 * 1000^3 bit/s
600 * 1000^2 byte/s
600 * 1000^2/1024^2 mebibyte/s
572.20458984375 MiB/s

And the performance of that particular HDD:

enter image description here

How do I speed the process, to make it as fast as possible?

If it is a normal drive I would use FastCopy, but here I am accessing an emulated file system through a USB cable, so I don't know if it is the most efficient solution.

In case the contents of the files are important, about half of them are JPEG screenshots, all of these screenshots are less than 1MiB in size. The other files are MPEG-4 screen recordings that comes in all sizes, but most of them are between 0.5 - 5 GiB. And there are 95 pictures and 100 videos, for a total of 159636475587 bytes (148.67 GiB).


All the options involving Blue-tooth, Wi-Fi and cloud storage can only be slower than the physical connection, they all have a narrower bandwidth than USB 3.0.


Just checked, the USB interface of the phone is Type-C source, I don't know if it supports USB 3.0 or not though, it is not stated. As for the cable, I don't know, maybe I will buy a USB 3.0 cable for the phone.

Ξένη Γήινος
  • 2,824
  • 6
  • 28
  • 62
  • 45
    37.1 MB/s, that is Pretty Darn Fast. We are stuck in a world of "Hurry-up Clock!" I wish I could read that fast. You need to roll with the punches. Copy or Move a little at a time next time, don't wait until it is jammed packed. Sorry, I have no better answer(s), I think nobody does for this. Just set it to copy and then take a nap. ;-) – vssher Jun 05 '22 at 08:08
  • 19
    Does your phone support USB 3.0? (Even Type-C ports are not necessarily 3.0 ports.) Does your cable support USB 3.0? (It needs to physically have the additional connections.) Your 37 MB/s sounds a lot like average USB 2.0 speed to me (around 400 Mbps not including overhead), and a faster port on one end won't make a 2.0-only port on the other end faster at all. – u1686_grawity Jun 05 '22 at 08:09
  • Try a third-party copier. The fastest I know is [FastCopy](https://fastcopy.jp/). – harrymc Jun 05 '22 at 08:15
  • Or TeraCopy. But what probably is going to be faster, is by using the android app "File Manager Plus" from File Manager Plus. It can make network copies. So share a folder locally, and copy over wifi. I can get very fast speeds that way and it runs on the phone, not the computer so may be faster too. – LPChip Jun 05 '22 at 11:11
  • 4
    @user1686 37.1MB/s seems pretty fast for USB 2 once you count all the overhead. It's also faster than what I've seen off my phone. – Loren Pechtel Jun 06 '22 at 03:45
  • 14
    I am moving even larger volumes of data regularly and my answer is: *you can reduce the process to a few minutes by proper **scheduling***. Start the transfer before going to bed and find the finished task once you are back. – miroxlav Jun 06 '22 at 08:17
  • 2
    Writing a lot of files to a HDD will definitely not yield 160 MB/s as you see in the "sequential write" tests. It will be somewhere in between that and the much lower "random write" tests (2-3 MB/s), the exact value depending on the size of the files, the filesystem in use, possibly how full the drive is, and a lot of other parameters. Even though the USB 2.0 interface of your phone is probably the most limiting factor, the HDD is going to be the next one, at best you'll be able to get x2, probably less. And that's of course if the HDD is connected via SATA or USB3 rather than USB2 as well. – jcaron Jun 06 '22 at 10:20
  • 44
    You could have waited out the 4 hours and 30 minutes faster than writing this question and interacting with Internet strangers. I really hope you started the transfer and went to sleep so it could be done by the time you woke up. – MonkeyZeus Jun 06 '22 at 13:29
  • 1
    I think it isn't necessary to mention it, I have already moved all the files from the phone to the computer, but I will leave this comment here to prevent people from leaving a comment like the last comment. – Ξένη Γήινος Jun 06 '22 at 13:39
  • 1
    For the future, install `syncthing` (https://syncthing.net/downloads/) on your android phone and your PC, and you'll have your android files synced (and thereby backed up) automatically, so you'll never have to transfer a big chunk at once anymore. Beware of data and battery usage during the initial sync, though. – Guntram Blohm Jun 06 '22 at 15:50
  • @ΞένηΓήινος what was your solution? Can you post it as an answer? – Tim Jun 06 '22 at 17:19
  • "Start the transfer before going to bed and find the finished task once you are back" - totally this. Plus, don't leave it so long that your storage is nearly full next time. – Michael Harvey Jun 06 '22 at 17:38
  • 11
    Strange times. "OMG, I have only 14 GB storage left on my phone, what should I do? Please help!" ;-) When I was young I had a Win/Linux dual boot on 500 MB... and I had to walk 10 feet across shag carpet to change the TV channel! – Peter - Reinstate Monica Jun 06 '22 at 19:38
  • 1
    Strange times, indeed, @Peter-ReinstateMonica. I remember staring in awe at the directory listing showing nearly _10 **MB**_ of free space on that PC XT! How many of these DSDD floppies can that store??? – FreeMan Jun 07 '22 at 12:28
  • .... this guy. What can we do with 16kb? Start a revolution. – ocodo Jun 07 '22 at 12:40
  • I’m voting to close this question because new answers to this question cannot be actually helpful, there is nothing I can do in this situation other than waiting, but new answers just keep coming... – Ξένη Γήινος Jun 08 '22 at 12:38
  • I think it was near year 2000 when I backed up a 4GB disk sector by sector. It took 2 hours. So actually that's not a long time (as others said, too). Also your phone will also be charged while copying, most likely. So what's the problem with time? How much time did it take to fill up the phone like that? – U. Windl Jun 08 '22 at 13:19
  • GUI transfers will always be slowest - either use [`adb`](https://developer.android.com/studio/releases/platform-tools) via [`adb pull -p /sdcard D:\MyPhone`](https://developer.android.com/studio/command-line/adb#copyfiles) or [`Robocopy`](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy) _(latter may depend on how the phone is mounted)_ – JW0914 Jun 08 '22 at 13:29
  • the overhead is from the mtp protocol. not from usb 2.0 or the flash storage on the phone. to reach the fastest speeds you need to use adb – theggputest55 Apr 20 '23 at 20:14

10 Answers10

49

According to specifications at GSMArena, your phone only has a USB 2.0 port. The highest operating mode in common between a USB 3.0 port on one end and a USB 2.0 port on the other end is still just USB 2.0 "High Speed" at 480 Mbps – your computer's USB 3.0 port cannot imbue the phone with more speed.

The practically achievable USB Mass Storage data transfer speed in this mode is around 42 "MB"/s. Your phone is an MTP device, not a mass storage device, but the calculations would be similar. Waiting is still probably your best option (802.11ac Wi-Fi could in theory exceed that speed, but in practice not by much).

(Also, if your phone came with a Type-C cable, it's probably also just a USB 2.0 cable made primarily for charging and only occassional data transfer – they won't bundle a more expensive USB 3.x-compliant cable with a USB 2.0 device. If the "computer" end of the cable is Type-A, you can visually inspect it – a USB 3.x cable would have an additional row of 5 pins hidden deep inside.)

Your phone seems to have a microSD storage slot – use it to move all files to a new SD card, then use an SD card reader to move them to the computer. While this would take more time in total, you no longer need continuous access to the computer for the entire duration; only the SD card needs to be left there.

Your phone also supports USB On-The-Go, which allows you to directly connect a USB disk to the phone and move files to it. (It might not be able to provide enough power for a 2.5" HDD, but you should be able to use a portable SSD or a high-capacity USB stick.) Later you can move the files from the USB SSD to your computer in a few minutes.

LWC
  • 862
  • 5
  • 15
  • 37
u1686_grawity
  • 426,297
  • 64
  • 894
  • 966
  • 13
    "Your phone also supports USB On-The-Go" -- no, it does not, USB OTG only applies to micro USB, this phone is USB C. What you wanted to say is "Your phone has a USB C connector so you can directly connect a USB disk..." Also, a data role swap might be necessary which, regrettably, is called OTG under Settings > Connected devices. But that's a misnomer from Android. – chx Jun 05 '22 at 18:39
  • 3
    @chx, so you are saying that the answer calls it OTG, the Android menu calls it OTG it is quite clear what is being suggested, but for some technical obscure reasons you object to this term? ;) – Andrew Savinykh Jun 07 '22 at 07:09
  • 3
    Since when is the USB C specification a technical obscure reason?? – chx Jun 07 '22 at 07:45
  • 7
    @chx Since the general public doesn't use the term. Not all USB-C ports are dual-role ports (DRP). That the phrasing "this device supports USB-OTG" remains commonplace over "this device supports dual role / has a DRP" is obvious. Since it remains unambiguous to say a USB-C device "supports OTG", what's the harm? – Jivan Pal Jun 07 '22 at 11:13
  • Just two problems off head, there might be many more: 1. you buy an OTG adapter and then it's micro USB and you can't even plug it in. 2. you might think a special OTG cable is needed when that's not necessary. Finally, is there really any phone with a non-DRP USB C port? – chx Jun 07 '22 at 20:09
  • 1
    Connecting a gigabit LAN adapter is also an option, although obviously limited by the speed of USB 2.0. I did this combined with a free FTP app the other day. – ProgrammingLlama Jun 08 '22 at 01:19
  • 1
    I think you always buy an UTG/OTG adapter for your phone. I had one that worked with Samsung, but would not with Huawei, so I bought another one that worked for Huawei. – U. Windl Jun 08 '22 at 13:23
  • the overhead is from the mtp protocol. not from usb 2.0 or the flash storage on the phone. to reach the fastest speeds you need to use adb – theggputest55 Apr 20 '23 at 20:14
8

If both the computer port and the phone has USB3 the problem is maybe not related to USB but the speed of the flash memory.

If the flash memory is not fast enough at reading the data it won't help if the transfer speed over the cable is fast.

mathreadler
  • 267
  • 1
  • 5
  • I meant this "answer"... – Ξένη Γήινος Jun 06 '22 at 07:49
  • 1
    In what way is it irrelevant to the question? Your question does not include the information about the disk on the reading side only on the writing wide. – mathreadler Jun 06 '22 at 08:26
  • 21
    It's a perfectly reasonable answer to the question "how can I speed up the transfer?". This answer is simply saying that if the bottleneck is read speeds on the flash memory, then you can't. "You can't" is an acceptable answer. – Jon Bentley Jun 06 '22 at 14:32
  • 1
    Usually *reading* from the built-in flash memory is much faster than USB2 is, unless the device uses exceptionally slow flash memory. – U. Windl Jun 08 '22 at 13:25
  • @U.Windl Yes, it is unlikely but possible. But we also don't know what else is happening on the device at the same time. Maybe many apps are competing about doing stuff with the memory. It is not so uncommon to have many apps running simultaneously these days. – mathreadler Jun 08 '22 at 15:42
3

I found that using a FTP server on my phone and transfer the files via FTP worked much faster than USB (because it's USB 2.0 with horrible MTP). And all new files also showed up instantly which they often enough don't via USB. Not sure if this is all related to my P30 Pro, but my Axon 7 had similar issues.

I'm using SwiFTP works great.

I can get transfer rates up to 125 MB/s with this over WiFi.

Arsenal
  • 131
  • 4
  • Also syncthing can be an option, in case you just want to keep synchronized media files between 2 or more devices. – Foxhole Jun 08 '22 at 16:29
  • 1
    Furthermore, using the **Hotspot** feature on Android you can connect your phone *directly* to the PC, bypassing any router/access point; this results in a greater transfer speed! – mattia.b89 Aug 20 '22 at 17:24
  • while the ftp way is better than compressing files like the other have suggested. but the adb way remain the fastest – theggputest55 Apr 20 '23 at 20:10
  • @theggputest55 adb might be faster if the phone has USB 3.x, but if it only has USB 2 the chances are high that you could reach higher speeds over wifi. Also installing the little app on the phone and something like Filezilla on the PC is quite comfortable. – Arsenal Apr 21 '23 at 07:49
2

Don't do it all at once. Do it in tranches of 8GB. Then plan to have a window. By all means stage it to a card first. 4.5 hours is not a long time. 2 games on Steam. Windows feature updates take that long. Some compression approaches take that long for 4GB files. Within living memory compilation of programs took 4.5 hours.

Manage your time. You seemed to find the time to ask the question.

Your technical difficulty suggests you don't have full ownership of the end to end chain, maybe that just means it is a work (school) computer you should not be using. So assuming it is your phone, card is the way to go.

mckenzm
  • 899
  • 4
  • 14
2
  1. Install ADB drivers for your device, enable ADB.
  2. Start command prompt in the target folder, to be copied into
  3. Run adb pull /storage/emulated/0 .. As pull uses lower level file copy mechanism, there may be errors caused by filesystem incompatibilities (for instance, long filenames for NTFS, big files for FAT32, unsupported characters in the filenames) - with those you have to deal manually.
  4. Disable ADB (optional but welcomed)
snuk182
  • 121
  • 1
1

As said, if your phone only supports USB2, that's all you're going to get.

Your options as I see it:

Wait for windows.

Try linux. (It has less bloat/overhead and generally handles files better - but if you're on USB2, that's all you'll get)

If you can connect a disk directly to your phone via usb C, then it could pay to buy/borrow a powered external HDD enclosure, and connect your backup disk directly to the phone that way.

The suggestion of using an SD card is also valid, and assuming your phone has proper support for it, can transfer at up to 90MB/s. Then with a USB3 to SD device, can transfer off equally fast.

I would find an app that can compress all your files into one (linux tar for example) then you're moving one contiguous file rather than many smaller ones. However this obviously doesn't work if you're out of space.

mitts
  • 123
  • 3
  • 1
    This problem is hardware caused and completely irrelevant to software, so changing operating system won't mitigate the problem even slightly. – Ξένη Γήινος Jun 06 '22 at 07:06
  • 4
    Yes, you might notice the bit where I said "if you're limited to USB2..." But also I've seen the same file transfers, performed faster on a live linux distro, than on the baremetal windows install. – mitts Jun 06 '22 at 07:34
  • As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jun 06 '22 at 07:35
  • `tar` can be used on the fly without requiring any more disk space, and does wonders with many very small files, although if the files are screen recordings it may not be the case – golimar Jun 08 '22 at 11:28
  • compressing large or many files is slow on phones and a waste of cpu cycle because there are way more efficient ways like using adb – theggputest55 Apr 20 '23 at 20:07
1

about half of them are JPEG screenshots, all of these screenshots are less than 1MiB in size

This is a significant contributor to the issue.

There is overhead with each individual file that you write to a disk involving looking for space on the disk, updating the file tables, etc. (I'm sure someone will chime in with more details.) The more small files you transfer the more time it will take because the more general file system overhead you will incur.

For example, create 150GB of small 1MB files in TestDir1, then compress them (and added some more) to create 150GB .zip file in TestDir2. You would find that copying TestDir1 to TestDestination would take more time than copying TestDir2 to TestDestination simply because you're incurring the file system overhead ~150,000 more times for TestDir1 than for TestDir2 even though the amount of bytes being copied is essentially the same.

FreeMan
  • 353
  • 3
  • 14
1

If you have adb installed in your PC and USB debugging enabled in your Android device, it will be easy.

First download ADB: From this official link Install it and launch it

Write:

  1. adb devices to see if your device is connected
  2. adb pull /sdcard this will literally extract everything from your device files, best way possible. If you want a specific folder target you write adb pull /sdcard/your_target, imagine it's the camera, then your target is DCIM/Camera So you'd write adb pull /sdcard/DCIM/Camera You let it work, and it shows the actual percentage of the work being done.

That is how I move large folders, it maybe a bit strange but it always works perfectly.

0

What I do when faced with this situation is to transfer the files overnight over WiFi. There are some apps that specialise in this, but most are proprietary and kinda complicated. So I just have an app that speaks SMB (file protocol used for network folders) and move files to a network location on my home WiFi - you can make it as simple as share a folder on the network from your Windows PC or have a dedicated NAS set up. The app I am currently using is called Cx File Explorer and I can just select the files/folders I want to move, select "move", then navigate to the network location (needs to be added first in the app) and select "paste". It does things in the background and you can just have the phone next to your bed overnight instead of having to babysit it.

htmlcoderexe
  • 131
  • 5
0

Install ADB File Explorer

https://forum.xda-developers.com/t/adb-file-explorer-python-application-cross-platform.4360633/

It's the fastest way to transfer files from smartphone to PC.

  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - [From Review](/review/late-answers/1171552) – Toto Feb 07 '23 at 11:24