HTC (Android) - (7/29更新)免ROOT! 使用adb來備份手機程式(ICS以上限定) - 手機

前往內容


(7/29更新)免ROOT! 使用adb來備份手機程式(ICS以上限定)

我知道我這篇 不少已經知道的高手大概都知道了
不過還是給一些不知道的人做使用 希望這樣能幫到想備份但卻不想解鎖+ROOT的使用者

OK 這邊我先說明一下
這個功能是搭配adb一起使用 是ICS(也就是4.0)開始才有的功能
只要系統是ICS以上的版本 不管是哪支手機都可以支援
此外還可以備份手機的儲存空間資料和SD卡資料哦~
前提是adb版本至少要1.0.28以上 在這之前的由於都沒寫入ICS附加的指令 因此指令會無效

附加壓縮檔: ADB 1.0.31封包

對了 若真的不是很懂的話 我做了一個批次執行檔 用它也可以輕鬆備份及還原
就不用再往下看打指令的部分 若想要進階一點就往下看 不用理會這個批次檔

附加壓縮檔: 包含bat批次檔的封包(8/22更新)
此次解決批次檔編碼問題,使其可以使用於大多數中文語言的系統上

另外~請各位有問題請直接回覆 請不要回覆+站內信 或是只寄站內信給我
因為我都會注意討論串的回應 而且這樣也能給有相似問題的使用者一個找到解答的地方
因此 若是寄站內信問我 我都不會回覆(這點再三聲明!!!)
否則~~~我可能就會AU2BL(Add User to Block List 加入使用者至黑名單)囉

==========================================================================

注意事項:(7/29更新)

1. 本方法雖然可以備份"部分"的系統資訊
(比如 小工具配置 桌布設置 快捷設置 聯絡人資料 等)
但此舉牽涉到系統程式 還原時可能會出問題 因此非常不建議備份系統設定

2. 有些APP的資料不會備份到 原因可能是設為不同路徑或是APP本身有限制
(若遇到這問題 有可能APP的資料檔是存放在SD卡上 可參考最底下的說明)

3. 部分手機無法使用本方法(請參考這裡)

4. 從Play商店購買的APP並不會備份起來(APK部分)
(5/7更新)不過付費APP的資料是會備份起來的 詳情請點我

5. 建議先將移動到SD卡(手機儲存空間)的APP移回到內部(系統)儲存空間
以避免發生APP檔案或是資料備份不到的問題


==========================================================================


以下是指令教學(只用批次檔的不用看下去 照批次檔上面的去做即可)

新的adb增加了一個名為backup的指令 就是我們本次的重點
而它所能用的指令大概是這樣

adb backup [-system|-nosystem] -all [-apk|-noapk] [-shared|-noshared] -f <檔案名稱>

看起來很複雜對不對? 下面我會一一解釋上面這些標有顏色的指令是有什麼用途


[-system|-nosystem]
這個指令是告訴adb 在備份時是否要連同系統一起備份
若沒有打的話 預設是-system 表示會一起備份系統
注意!若連系統一起備份 在還原的時候會覆蓋系統檔案 對於已經升級後的手機是非常不好的
我不知道在沒有ROOT的情況下 adb是否有權限去還原系統檔案 但就算如此 還是不建議這樣做
因此 -nosystem是建議一定要打上的指令


-all
這個指令除非只是要備份單一APP 不然是一定要打上去的
這個是問你是否要備份全部的APP 若有加上-nosystem的指令
那麼他就只會備份你目前已經安裝上去的APP 而不會連系統APP一起備份


[-apk|-noapk]
預設是-noapk 這個的意思是是否連安裝的APK一起備份
若為-noapk 則只會備份APK的資料檔(像是遊戲存檔 設定 之類的)
但我會建議連APK一起備份 因為這樣才不會有版本衝突的問題


[-shared|-noshared]
預設是-noshared 這個會問你是否連手機儲存空間或是SD卡的檔案一起備份
我是不知道若有APP安裝在SD卡上的時候 沒打這指令是否會略過
但若大部分的APP都安裝在內務空間的話 這個就可以不用打了
(註:HTC有保留一個名為com.android.sharedstoragebackup的APK
這個APK會將SD卡或是手機空間的資料都備份 因此除非使用-nosystem指令
否則對於HTC手機來說 不管有無打-shared 手機空間的資料一定會備份)



-f <檔案名稱>
這個是指定備份完之後 要存在電腦的哪個地方
不過記得要打檔名 而副檔名則一定要打.ab
這個我會在後面實作的部分會再做說明


看了這麼多 應該還是有些人不太知道要怎麼打吧?
那麼我就來實作一下



================================================================================

備份
(1/10補充)
這邊要先說明 由於有些電腦並非使用原生USB3.0 而是使用獨立的晶片 並非由晶片組直接提供
因此有時adb會因此無法連線或是傳輸上出問題
所以 請連接USB2.0或是連接原生的USB3.0

首先請確定已經有安裝手機驅動(特別強調! 至於手機驅動哪找 看你是哪家手機就去哪家的官網找)

接著請連上手機 確定USB偵錯模式是否有啟動
(註:USB請設定為充電模式或MTP模式 請勿設定成磁碟機或網路分享!)

接下來就可以直接使用backup指令了

比方說我要備份APK資料 要連同APK一起 不要去備份SD卡或外存 不要去備份到系統APP
且我要指定檔案名稱為test 並存在D槽的話 那麼指令就是


adb backup -apk -all -nosystem -f "D:\test.ab"

注意1:檔案路徑和檔名若有空格 請記得路徑要框「"」
例:-f "D:\phone backup\htc j.ab"
否則會有問題


注意2:若輸入指令後沒出現備份畫面或是adb顯示錯誤訊息 有可能是adb沒抓到手機
請使用adb devices指令來看adb是否有抓到手機


一但指令輸入後 會顯示這樣的字串


並且手機上會出現這樣的畫面


這個會要你輸入這個備份檔案的保護密碼 你可以選擇不輸入 好了之後就按"備份我的資料"
再來就慢慢等它備份啦~ 備份的過程中 手機畫面會出現正在備份的APK及資料
備份完後就會自動跳出程序 並且看看D槽


檔案就會存在我所指定的路徑底下了

=============================================================================

還原
既然已經備份好了 那之後要怎麼還原呢?
這時候就要使用另一個指令 adb restore

我還是以剛剛的test.ab檔案為例 那麼打的時候就輸入


adb restore "D:\test.ab"


輸入後 手機就會出現這畫面


打入你的手機密碼以及你的封包所設定的密碼(假如有的話)
就會開始做還原的動作 而且它會依據一開始備份時存放的路徑下去還原
等到還原成功後 就可以去看看APP是否都回來了 也可以檢查遊戲存檔或是設定那些是否還在




==============================================================================

進階作法及額外注意事項

個別程式備份方法

有不少人問我如何備份單個APP就好了 其實方法也很簡單
難就難在得找出APP的物件名稱

什麼是物件名稱? 簡單來說物件名稱才是屬於APP真正的名稱
由每一個APP開發者(或開發商)所自己定義的Java package名稱
別忘了 Android的應用都是由Java寫出來的 如果有寫過Java的話應該對package不陌生
至於我們一般看到的APP名稱都是另外再加上去的

比如 從iOS移植到Android上的免費遊戲之一 Temple Run
表面名稱雖然就叫Temple Run
但它實際的物件名稱為 com.imangi.templerun
而不要以為這就是基本的格式了(什麼前面一定是com之類的)
這個完全是由開發者自行定義

OK 這樣大概就了解了吧? 不過要怎麼去看物件名稱?
基本上一般的應用程式管理員和工作管理員都是沒辦法看到物件名稱的
需要安裝類似APK管理器之類的軟體(像是超級管理器) 才可以知道每個APP的類別名稱
特別注意!類別名稱是有大小寫區分的 請仔細查看 以免備份出問題

若知道了物件名稱後 指令要怎麼打呢?

我們這邊就以Temple Run為例 adb指令就要打成:

adb backup -apk com.imangi.templerun -f "D:\test.ab"


這邊說明一下 由於只是備份單一APP的資料 因此不需要加-nosystem -all -noshared等全域指令
只需要這樣簡單打就可以了 而依照你的喜好 想連APK一起備份就加-apk

輸入完後 手機會再度出現與上頭一樣的畫面 只要按一下備份 就會把指定的APP給備份下來了


----------------------------------------


資料另外的儲存位置
有些APP資料或是遊戲存檔 並不一定會存在放手機內部的儲存空間
有可能會存放在SD卡或是手機的使用者儲存空間

目前已經知道 像是TempleRun SubwaySurf 以及LINE
他們的紀錄都是存在SD卡或是手機儲存空間上

至於怎麼找他們 只要到SD卡(使用者儲存空間)裏頭看 會有一個Android資料夾
裡面有一個data資料夾 就是檔案的存放之處 只要備份下來就可以了
但要注意的是 若在備份之前就移除程式
那麼該資料也是會從儲存空間上移除的
這點還請注意



----------------------------------------


使用鈦備份還原
這是我找資料的時候無意間發現的 其實鈦備份也支援使用adb備份出來的資料
只要版本是5.6以後的就行了
因此 也可以使用鈦備份進行還原的動作 缺點是本身需要root 而且必須是專業版才支援


----------------------------------------


ab備份檔解壓方法
終於有了可以將ab檔解壓縮和重製的方法啦~ 點連結就可以過去看了
請點我觀看

是不是很簡單呢? 總比還要大費周章地去解鎖 刷ROOT 還要簡單
祝各位備份愉快~
好實用的一篇文章
這樣系統更新後就不用為了還原資料而傷腦筋
不然每次還原原廠設定後又是一場惡夢啊
也不用去學ROOT了!!


AKSN74 wrote:
我知道我這篇 不少已...(恕刪)


都用鈦備份做的 真的不知道這個方法!
感謝分享!

任由他人笑癡狂,我行我素獨驥闖,海天湛藍共一色,山水碧綠立兩旁

AKSN74 wrote:
我知道我這篇 不少已...(恕刪)


實用資訊
這一篇怎麼不早一點出來.
就在剛剛
..我研究一個早上才弄好...

但是還是幫大大加5分

AKSN74 wrote:
我知道我這篇 不少已...(恕刪)


太實用了~~~

這樣舊手機搬資料到新買的未root手機

就很夠用了
這篇文章太有用了
謝謝教學
這個一定要學起來的!!!!
(4/16修改) 這邊就寫一些無法使用adb backup的一些手機
如果可以的話 希望一些人能夠提供一些不能使用adb backup或是可以備份但不能還原的手機

(注意:不能備份和還原的手機 可試試Helium 若連Helium也無法 建議root)

已知不能備份的手機/平板:
SONY:
XPERIA全系列(TX以前的機種 在這之後出來的應該都可以)
例外:Neo V

Motorola部分手機 (不清楚目前是如何了 之前一開始有不少不能使用的災情)


已知可備份 但不能還原的手機/平板:
ASUS:
Padfone系列
Zenfone 5
FonePad
MeMo Pad HD7

HTC:
One V


希望各位可以提供詳盡的資訊
太強了.
非常感謝AKSN大的分享.
順利完成備份了.
沒有問題!

我剛剛測試的時候發現一個問題

HTC有保留com.android.sharedstoragebackup的APK
這個APK會將SD卡或是手機空間的資料都備份

因此 除非打-nosystem
否則就算預設是-noshared 手機儲存空間和SD卡的資料都會被備份

1頁 (共79頁)

前往