HTC Dream(aka T-Mobile G1, Android Dev Phone 1)の標準アプリをバックアップしてみる

HTC Dream(いわゆるAndroid Dev Phone 1)のファームを書き換える前に標準アプリをバックアップしてみる。

adbでログイン

USB接続してPCからadbでログインする。

adb shell
$ pwd
pwd
/

意外とあっさり入れた。コマンドはいちいちエコーバックするらしい。以降の表記はエコーバックを省略。

何があるか

見てみる。

$ ls -l /system/app
-rw-r--r-- root     root       211385 2008-11-04 07:24 gtalkservice.apk
-rw-r--r-- root     root       212284 2008-11-04 07:24 YouTube.apk
-rw-r--r-- root     root       348368 2008-11-04 06:05 Vending.apk
-rw-r--r-- root     root       282341 2008-11-04 07:24 Talk.apk
-rw-r--r-- root     root       389877 2008-11-04 07:24 Maps.apk
-rw-r--r-- root     root        67854 2008-11-04 07:23 GoogleApps.apk
-rw-r--r-- root     root        16422 2008-11-04 06:05 GDataFeedsProvider.apk
-rw-r--r-- root     root        90922 2008-11-04 06:05 CalendarProvider.apk
-rw-r--r-- root     root       213796 2008-11-04 06:05 Calendar.apk
-rw-r--r-- root     root      1055091 2008-11-04 06:05 Browser.apk
-rw-r--r-- root     root        10510 2008-11-04 06:05 Updater.apk
-rw-r--r-- root     root        93791 2008-11-04 07:23 Street.apk
-rw-r--r-- root     root        38223 2008-11-04 06:05 TelephonyProvider.apk
-rw-r--r-- root     root        44471 2008-11-04 06:05 SoundRecorder.apk
-rw-r--r-- root     root       260241 2008-11-04 06:05 SetupWizard.apk
-rw-r--r-- root     root        19696 2008-11-04 06:05 Sync.apk
-rw-r--r-- root     root        16438 2008-11-04 06:05 SettingsProvider.apk
-rw-r--r-- root     root       756506 2008-11-04 06:05 Settings.apk
-rw-r--r-- root     root       645338 2008-11-04 06:05 Phone.apk
-rw-r--r-- root     root        40247 2008-11-04 06:05 PackageInstaller.apk
-rw-r--r-- root     root       310548 2008-11-04 06:05 Music.apk
-rw-r--r-- root     root       568911 2008-11-04 06:05 Mms.apk
-rw-r--r-- root     root        33634 2008-11-04 06:05 MediaProvider.apk
-rw-r--r-- root     root      1381982 2008-11-04 06:05 Launcher.apk
-rw-r--r-- root     root        27066 2008-11-04 06:05 ImProvider.apk
-rw-r--r-- root     root        12288 2008-11-04 06:05 GoogleSearch.apk
-rw-r--r-- root     root         5357 2008-11-04 06:05 HTMLViewer.apk
-rw-r--r-- root     root        86922 2008-11-04 07:23 GmailProvider.apk
-rw-r--r-- root     root       322700 2008-11-04 07:23 Gmail.apk
-rw-r--r-- root     root       127962 2008-11-04 06:05 FieldTest.apk
-rw-r--r-- root     root       413942 2008-11-04 06:05 Email.apk
-rw-r--r-- root     root        10475 2008-11-04 06:05 DrmProvider.apk
-rw-r--r-- root     root        40745 2008-11-04 06:05 DownloadProvider.apk
-rw-r--r-- root     root        54675 2008-11-04 06:05 ContactsProvider.apk
-rw-r--r-- root     root       258215 2008-11-04 06:05 Contacts.apk
-rw-r--r-- root     root       350363 2008-11-04 06:05 Camera.apk
-rw-r--r-- root     root        82629 2008-11-04 06:05 Calculator.apk
-rw-r--r-- root     root         4929 2008-11-04 06:05 Bugreport.apk
-rw-r--r-- root     root       160822 2008-11-04 06:05 AlarmClock.apk

39個ある。

バックアップ (失敗1)

どれをバックアップしたらよいか分からないので全部SDカードにコピーしてみる。

$ mkdir /sdcard/dreamapps
$ cd /system/app
$ for i in *; do
> cp $i /sdcard/dreamapps
> done
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied
cp: permission denied

rootじゃないといけないのか。

バックアップ (失敗2)

rootになってから。

$ su
# for i in *; do
> cp $i /sdcard/dreamapps
> done
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found
cp: not found

cpがないだと。

バックアップ (やっとできた)

# for i in *; do
> cat $i > /sdcard/dreamapps/$i
> done
# ls -l /sdcard/dreamapps
----rw-rw- system   system     160822 2009-01-12 09:44 AlarmClock.apk
----rw-rw- system   system    1055091 2009-01-12 09:44 Browser.apk
----rw-rw- system   system       4929 2009-01-12 09:44 Bugreport.apk
----rw-rw- system   system      82629 2009-01-12 09:44 Calculator.apk
----rw-rw- system   system     213796 2009-01-12 09:44 Calendar.apk
----rw-rw- system   system      90922 2009-01-12 09:44 CalendarProvider.apk
----rw-rw- system   system     350363 2009-01-12 09:44 Camera.apk
----rw-rw- system   system     258215 2009-01-12 09:44 Contacts.apk
----rw-rw- system   system      54675 2009-01-12 09:44 ContactsProvider.apk
----rw-rw- system   system      40745 2009-01-12 09:44 DownloadProvider.apk
----rw-rw- system   system      10475 2009-01-12 09:44 DrmProvider.apk
----rw-rw- system   system     413942 2009-01-12 09:44 Email.apk
----rw-rw- system   system     127962 2009-01-12 09:44 FieldTest.apk
----rw-rw- system   system      16422 2009-01-12 09:44 GDataFeedsProvider.apk
----rw-rw- system   system     322700 2009-01-12 09:44 Gmail.apk
----rw-rw- system   system      86922 2009-01-12 09:44 GmailProvider.apk
----rw-rw- system   system      67854 2009-01-12 09:44 GoogleApps.apk
----rw-rw- system   system      12288 2009-01-12 09:44 GoogleSearch.apk
----rw-rw- system   system       5357 2009-01-12 09:44 HTMLViewer.apk
----rw-rw- system   system      27066 2009-01-12 09:44 ImProvider.apk
----rw-rw- system   system    1381982 2009-01-12 09:44 Launcher.apk
----rw-rw- system   system     389877 2009-01-12 09:44 Maps.apk
----rw-rw- system   system      33634 2009-01-12 09:44 MediaProvider.apk
----rw-rw- system   system     568911 2009-01-12 09:44 Mms.apk
----rw-rw- system   system     310548 2009-01-12 09:44 Music.apk
----rw-rw- system   system      40247 2009-01-12 09:44 PackageInstaller.apk
----rw-rw- system   system     645338 2009-01-12 09:44 Phone.apk
----rw-rw- system   system     756506 2009-01-12 09:44 Settings.apk
----rw-rw- system   system      16438 2009-01-12 09:44 SettingsProvider.apk
----rw-rw- system   system     260241 2009-01-12 09:44 SetupWizard.apk
----rw-rw- system   system      44471 2009-01-12 09:44 SoundRecorder.apk
----rw-rw- system   system      93791 2009-01-12 09:44 Street.apk
----rw-rw- system   system      19696 2009-01-12 09:44 Sync.apk
----rw-rw- system   system     282341 2009-01-12 09:44 Talk.apk
----rw-rw- system   system      38223 2009-01-12 09:44 TelephonyProvider.apk
----rw-rw- system   system      10510 2009-01-12 09:44 Updater.apk
----rw-rw- system   system     348368 2009-01-12 09:44 Vending.apk
----rw-rw- system   system     212284 2009-01-12 09:44 YouTube.apk
----rw-rw- system   system     211385 2009-01-12 09:44 gtalkservice.apk

やっとバックアップできた。

正攻法

adbでPCに直接バックアップできるらしい。

adb pull /system/app dreamapps
pull: building file list...
pull: /system/app/AlarmClock.apk -> dreamapps/AlarmClock.apk
pull: /system/app/Bugreport.apk -> dreamapps/Bugreport.apk
pull: /system/app/Calculator.apk -> dreamapps/Calculator.apk
pull: /system/app/Camera.apk -> dreamapps/Camera.apk
pull: /system/app/Contacts.apk -> dreamapps/Contacts.apk
pull: /system/app/ContactsProvider.apk -> dreamapps/ContactsProvider.apk
pull: /system/app/DownloadProvider.apk -> dreamapps/DownloadProvider.apk
pull: /system/app/DrmProvider.apk -> dreamapps/DrmProvider.apk
pull: /system/app/Email.apk -> dreamapps/Email.apk
pull: /system/app/FieldTest.apk -> dreamapps/FieldTest.apk
pull: /system/app/Gmail.apk -> dreamapps/Gmail.apk
pull: /system/app/GmailProvider.apk -> dreamapps/GmailProvider.apk
pull: /system/app/HTMLViewer.apk -> dreamapps/HTMLViewer.apk
pull: /system/app/GoogleSearch.apk -> dreamapps/GoogleSearch.apk
pull: /system/app/ImProvider.apk -> dreamapps/ImProvider.apk
pull: /system/app/Launcher.apk -> dreamapps/Launcher.apk
pull: /system/app/MediaProvider.apk -> dreamapps/MediaProvider.apk
pull: /system/app/Mms.apk -> dreamapps/Mms.apk
pull: /system/app/Music.apk -> dreamapps/Music.apk
pull: /system/app/PackageInstaller.apk -> dreamapps/PackageInstaller.apk
pull: /system/app/Phone.apk -> dreamapps/Phone.apk
pull: /system/app/Settings.apk -> dreamapps/Settings.apk
pull: /system/app/SettingsProvider.apk -> dreamapps/SettingsProvider.apk
pull: /system/app/Sync.apk -> dreamapps/Sync.apk
pull: /system/app/SetupWizard.apk -> dreamapps/SetupWizard.apk
pull: /system/app/SoundRecorder.apk -> dreamapps/SoundRecorder.apk
pull: /system/app/TelephonyProvider.apk -> dreamapps/TelephonyProvider.apk
pull: /system/app/Street.apk -> dreamapps/Street.apk
pull: /system/app/Updater.apk -> dreamapps/Updater.apk
pull: /system/app/Browser.apk -> dreamapps/Browser.apk
pull: /system/app/Calendar.apk -> dreamapps/Calendar.apk
pull: /system/app/CalendarProvider.apk -> dreamapps/CalendarProvider.apk
pull: /system/app/GDataFeedsProvider.apk -> dreamapps/GDataFeedsProvider.apk
pull: /system/app/GoogleApps.apk -> dreamapps/GoogleApps.apk
pull: /system/app/Maps.apk -> dreamapps/Maps.apk
pull: /system/app/Talk.apk -> dreamapps/Talk.apk
pull: /system/app/Vending.apk -> dreamapps/Vending.apk
pull: /system/app/YouTube.apk -> dreamapps/YouTube.apk
pull: /system/app/gtalkservice.apk -> dreamapps/gtalkservice.apk
39 files pulled. 0 files skipped.
1067 KB/s (0 bytes in 9067966.008s)

まったく簡単。