題:
通過ADB備份和還原Android設置和應用程序
salamis
2012-01-18 00:00:06 UTC
view on stackexchange narkive permalink

我想問一下是否可以通過ADB備份和還原所有Android設置和應用程序。

我嘗試過:

  adb backup -alladb:無法連接備份 

它不起作用,而所有其他命令都起作用。

是否可以使用此 bmgr? >

我在win7-64上使用adb 1.0.29,並在執行“ adb backup -all”時收到錯誤“ adb:無法打開文件./backup.ab”。裝置會找到您的Android嗎?
是的,我可以看到設備ID。
在命令行上提交多個程序包名稱時,我遇到了類似的問題。問題是要備份的軟件包數太長。我需要將其拆分為多個命令調用
七 答案:
Alexander Lucas
2012-02-28 05:51:44 UTC
view on stackexchange narkive permalink

確保已啟用調試並已連接設備。另外,請記住實際選擇設備本身上的“備份我的數據”按鈕(設備需要確認)。如果您在設備上沒有看到這樣的屏幕,則很可能正在運行ICS之前的版本(< 4.0)手機,不幸的是它將沒有該功能。

此外, bmgr 並非為此的解決方案-它是一種工具,可通過手動觸發 backup API來測試處理自身備份的應用程序在應用程序中的備份代理上使用“備份”和“還原”方法,而不是插入設備並向/從開發計算機複製數據。

是的-對我來說,問題是手機上的Android版本低於4.0。謝謝!
這實際上包括設置/數據嗎?
desam1000
2012-09-07 02:03:53 UTC
view on stackexchange narkive permalink

這是我備份內容的命令

 。/adb shell ls -l -a | grep'^ [^ l]'| sed -e's / ^ d。* \([^] * \)\ r $ / mkdir sav \ / \ 1; 。\ / adb pull \ / \ 1 sav \ / \ 1 /'-e's /-.* \([^] * \)\ r $ /。\ / adb pull \ / \ 1 sav \ / \ 1 /'| / bin / bash  
  1. 列出所有文件
  2. 忽略鏈接
  3. 用於
    • 文件:輸出adb pull命令
    • 目錄:將目錄(如果我們將某內容拉為空)並輸出一個adb拉命令
  4. 執行bash中的所有內容
  5. ol>

    有些文件中我的權限被拒絕-但是由於進行此備份是為了使設備成為根目錄,因此我無法獲得更多的權限:(

實際上,即使在較舊的Android設備(在本例中為Gingerbread 2.3.3)上,這似乎也可以備份所有文件(減去“ permission否認”位)。我使用這種變體(在mkdir中添加了-p參數以避免一些錯誤消息,並在./adb前面刪除了。/`):`time adb shell ls -l -a | grep'^ [^ l]'| sed -e's / ^ d。* \([^] * \)\ r $ / mkdir -p sav \ / \ 1; adb pull \ / \ 1 sav \ / \ 1 /'-e's /-.* \([^] * \)\ r $ / adb pull \ / \ 1 sav \ / \ 1 /'| / bin / bash`
無需任何花哨的正則表達式即可對所有文件進行遞歸備份的簡單得多的方法是“ adb pull /”。
koopaking3
2012-02-25 04:59:47 UTC
view on stackexchange narkive permalink

如果我對您的理解正確,那麼此鏈接可能就是您所需要的。總結一下:

1)運行 adb設備以確保您的設備已連接。

2)運行 adb pull / data / app ./來獲取所有應用APK,並將它們放入當前文件夾中。
a)或運行 adb pull / system / sd / app ./以將應用程序保存到SD卡上。

3)設置位於不同的位置,因此請找出位置,然後使用相同的 adb pull 命令來捕獲它們。

然後該鏈接詳細說明瞭如何基於Mac或Windows進行還原。

或者,它看起來像 bmgr 命令也可以使用一些簡單的命令( adb shell bmgr backup <package> 進行備份,以及 adb shell bmgr restore <package> 進行還原)。您還在尋找什麼?

正如亞歷山大·盧卡斯(Alex Lucas)在下面的答案中指出的那樣,`bmgr`命令是開發人員測試應用程序備份/還原的工具。它實際上不會從設備上複製任何數據,因此它不太可能有用。
在Gingerbread設備上的adb 1.0.30上不起作用:`pull:building file list ... pull pull 0。跳過了0個文件。
您的“ adb pull”將無法在非root用戶的設備上獲取私人應用程序數據。而“ bmgr”僅用於控制Google的雲備份
Zalaboza
2014-05-29 09:27:02 UTC
view on stackexchange narkive permalink

問題可能是由於連接了多個設備/模擬器。

檢查 adb設備,如果它顯示多個設備,則可能無法連接專門針對仿真器

運行 adb usb ,它將重新啟動其他設備,然後斷開/重新連接USB電纜,現在運行

adb設備

它應該僅顯示一個設備。

現在執行

adb backup -all

您應該很好:)

如果我通過適用於Android的終端仿真器在本地使用命令,該怎麼辦?
Tyson
2014-06-21 06:57:31 UTC
view on stackexchange narkive permalink

請確保運行SDK更新,並特別選中Google USB Drivers框並更新SDK。

在設備上啟用USB調試並插入PC後,您將收到有關以下內容的提示:安裝驅動程序。即使成功打開設備管理器並找到您的手機,也可以右鍵單擊並更新驅動程序,然後將其指向 SDK > Extras > Google USB 中的Google USB驅動程序文件夾,並讓其更新驅動程序。

然後,您應該能夠從設備中提取完整備份。

這為我解決了這個問題。驅動程序不是問題,但是ADB版本本身已經過時了。
WAZANATOR
2015-06-15 02:04:33 UTC
view on stackexchange narkive permalink

我有一個我需要備份的GS4,不幸的是遇到了這個錯誤。經過一番撓頭(和咒罵)後,我發現了一個修復程序,希望對您有用。我可以通過運行 abd 並滾動瀏覽幫助文檔來找到它。我發現 -d 是一個“將命令定向到唯一連接的USB設備”的參數。因此,在插拔之後,我就可以使用它了。我使用的命令是:

adb -d backup -apk -shared -all -f C:\ Users \ NAME \ backup.ab

希望這適用於與我有相同問題的人。

Nakarti
2012-04-21 01:49:51 UTC
view on stackexchange narkive permalink

我遇到了同樣的問題,也是ICS之前的課程。解決該問題的方法是使用ls / 和awk(使用grep跳過鏈接)創建一個批處理文件,該文件將每個實際目錄都拉到PC上的目錄中。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...