MTP超難用與資料備份解決辦法 - Android

Table of Contents

一、前言
真是搞不懂MTP(媒體傳輸模式)這種傳輸模式為什麼會廣泛使用
不僅慢還常常會發生圖片資料毀損的情況
還我MSC(大量儲存模式)啊...


二、研究動機與目的
在處理手機.thumbnails資料夾的時候
發現刪除了容量還是回不來
只好備份資料後格式化內建儲存空間

備份拉出資料的速度還算可以
12G大檔混小檔的檔案一個小時左右完成
但要還原的時候真的讓人吐血
事前就知道MTP傳零碎檔超級慢
所以我放著12小時去睡覺
睡醒居然還沒跑完那堆資料(LINE的零碎檔和2萬張照片占大多數)

有人可能會問,為什麼不手機開FTP直接扔過去比較快
1.零碎檔斷線又傳斷線又傳
而且多檔連線常常會跳出失敗
不會快到哪裡去
2.如果使用FTP傳輸或adb backup
adb backup -shared -nosystem -f "sd.ab"
還原回去的時候會是一個「全新」的檔案
一些跟日期沒有關係的檔案可能無傷大雅
但照片及影片的檔案排序會整個亂掉
在看圖的時候會非常不方便


三、文獻探討
上網爬完之後發現不只我在罵
原來已經幹聲一片好幾年了= =

現在除了少部分廠商的4.x系統可以使用MSC模式以外
5.x以上基本都已經是強制走MTP了

而有人就質疑了「明明還可以用push,為什麼把MSC取消了?」
這段話明顯是兩個不同的東西看起來很搞笑XD
但卻讓我想到可以用adb pull和push來達到我要的效果

備份: adb pull /sdcard x:\ooo (全部備分)
adb pull /sdcard/aaa x\ooo\aaa (單獨備份資料夾)
註3.1. x:\ooo\為你要在電腦上放置的目錄,不寫就是同adb.exe位置
註3.2. 它是複製「該資料夾內的檔案」不是「資料夾」直接過去
因此備份及還原時請務必在目的路徑加上原資料夾名稱

還原: adb push x:\ooo /sdcard (全部還原)
adb push x:\ooo\123 /sdcard/123 (單獨還原資料夾)


四、結論
1.零碎小檔還原傳輸速度(以LINE零碎圖片暫存檔為例)
a.使用MTP的速度是: 2秒1個
b.使用FTP的速度是: 1秒5~10個
c.使用adb pull/push的速度是: 1秒25個以上 (說以上是因為跑太快我看不清...)

2.單就資料結構完整性來說
a.MTP 可以保留 媒體拍攝時間
b.FTP 無法保留 媒體拍攝時間
c.adb pull/push 可以保留 媒體拍攝時間

3.檔名名稱編碼支援度
a.MTP 支援 非英數檔名
b.FTP 支援 非英數檔名
c.adb pull/push 不支援 非英數檔名
註4.1. 下指令後日語及簡體錯誤會馬上告知,不會跑一半才報錯
註4.2. 中文不會報錯,但會產生資料錯誤及檔案遺漏

綜合以上結果可知
目前尚有與MSC同樣效能與穩定性的傳輸方式
英文文件使用adb pull/push,非英文文件另外獨立使用MTP
是現在備份/還原內建儲存空間最好的折衷方法

--
人生中有些東西放著放著就會發現突然不見了:
一是時間,二是青春,三是3DS的觸控筆……
正常來說新買一根是比較簡潔的解決方法
問題是這台限定機要是換一根筆的話
相當於在愛花的洞洞裡插進了另外一根棒子
這種事情我是不會允許發生的

--

All Comments

Hamiltion avatarHamiltion2016-03-29
好文推 有時插上去還會讀不到也很惱人
Zenobia avatarZenobia2016-03-30
檔名編碼支援度…(略 這裡應該是中文檔名而不是非中文吧
Belly avatarBelly2016-04-02
謝樓上糾正 搞了整夜沒睡頭昏了我改一下...
Kelly avatarKelly2016-04-04
如果有更好的解決方法歡迎提出... (有朋友提到rsync
Emily avatarEmily2016-04-05
欸sony的5.0還是有大量儲存模式耶?
Zora avatarZora2016-04-09
樓上可以連內建SD空間? 還是只能連實體SD卡?
Frederica avatarFrederica2016-04-11
MTP各種不穩,以前我都備到SD卡再拔到PC,現在改用區網或FTP
Edwina avatarEdwina2016-04-14
我都懶得用線了XD,直接用AIRDROID
Olivia avatarOlivia2016-04-18
M7內建空間不能插卡啊啊啊啊啊
Donna avatarDonna2016-04-18
AIRDROID時間格式會變動嗎?
Franklin avatarFranklin2016-04-22
SONY兩個模式都一直在
Caitlin avatarCaitlin2016-04-24
HTC沒有 三星沒有 ASUS沒有 Nexus親兒子沒有
原來SONY才是真良心嗎XD
Donna avatarDonna2016-04-27
想問一下,SONY的大量儲存模式是能連進內建空間?
Vanessa avatarVanessa2016-04-29
給樓上一張圖解釋一切 http://i.imgur.com/5dWnmUQ.png
Carol avatarCarol2016-04-29
adb pull檔名亂碼問題應該是cmd害的
你走powershell看看?
Mia avatarMia2016-05-03
Mtp-Alternative試試 走WebDAV的傳檔穩定性不錯
Rebecca avatarRebecca2016-05-08
拉大檔時PC端要改登錄檔 W7之後微軟新增限制
Freda avatarFreda2016-05-11
MTP 真的...很麻煩。
Gary avatarGary2016-05-15
感覺沒什麼方便的方案,照片和影片我都丟 flickr 反正不貴
Andrew avatarAndrew2016-05-19
也不會錯亂,其他檔案重要的就用 dropsync 備份一下就好,
其他方法弄半天搞得用個手機像是在找自己麻煩,尤其又不是
Mary avatarMary2016-05-21
單隻,自用、公司配的、平板,每個都要獨立去用也太累了。
Mary avatarMary2016-05-25
我用 BTSYNC
Lauren avatarLauren2016-05-29
mtp速度比大量儲存模式慢很多,也不能預覽
Elvira avatarElvira2016-05-31
這個時後可以推我索粉我驕傲嗎?
Brianna avatarBrianna2016-06-02
MTP真的是垃圾中的垃圾,難用到不行。 傳輸慢又不穩,
常常傳到一半當掉,開資料夾也常等老半天就當掉。 搞
的我每次要拉資料出來都一肚子火。 所以我現在資料都
不存在手機內建ROM,存記憶卡再把卡拔出用讀卡機都還
比較快。 真不知GOOGLE跟MICROSOFT在想什麼...講到就
不爽
Olive avatarOlive2016-06-03
MTP真的糞 我媽的ZF5 老人家愛拍照片 有近上萬張
後來直接放棄備份
Cara avatarCara2016-06-07
咕狗和巨硬:賺雲端被備份的錢啊。
Zanna avatarZanna2016-06-08
MTP應該是為了OSX吧?!
Madame avatarMadame2016-06-10
好文推
Annie avatarAnnie2016-06-10
@ChiuTW 這可以保留影片照片的產生日期嗎?
Rae avatarRae2016-06-11
ftp能保留文件創造時間 客戶端發個指令便能獲取時間 所
以只要客戶端軟體設置/支援即可。
Belly avatarBelly2016-06-12
mtp問題的確很多 我也受害過 但能理解為何會挑它 兼容性
最佳
Kumar avatarKumar2016-06-17
其實應該是修改時間 m兄有關鍵字做法嗎
Kumar avatarKumar2016-06-19
例如FileZilla的保留傳輸檔案的時間戳記?
Annie avatarAnnie2016-06-21
不過走FTP常常會掉包檔案不完整 尤其開多線的情況下...
Odelette avatarOdelette2016-06-23
MDTM - return the modification time of a file
Queena avatarQueena2016-06-28
沒錯 是修改時間 但必須由客戶端軟體自動獲取寫入才人道
找找FZ設定 內應該有類似 保留伺服器文件時間 的選項
Caitlin avatarCaitlin2016-06-29
有比較exotic的客戶端下載好後能自動用同文件夾內sfv資
料來md5 hash的
Caitlin avatarCaitlin2016-06-30
有人跟我一樣在mtp底下更名必當嗎
Rebecca avatarRebecca2016-07-02
我裝了Xposed之後根本連MTP都連不上了,有人一樣的嗎?
Ina avatarIna2016-07-06
xposed不會影響MTP 我四支手機都有上xposed
Hedwig avatarHedwig2016-07-09
我現在都用區網傳
Ursula avatarUrsula2016-07-14
個人問題
Lucy avatarLucy2016-07-18
MTP超爛,MSC才是王道