HTC Jでadb backupが正常動作しない件

twitterでgoroh_kunさんがadb backupした後改ざんして書き戻せると言っていたのを見て、
HTC Jでもこの方法を使って最新Verでroot取れるのでは?と思ったが、adb backupが正常に行われない。
その問題についての検証です。

正常動作するGalaxy Nexusと、HTC Jでの違いを調べます。
GNexusはICSではなくJB化してますが、大体同じでしょう…w
adb logcat|grep Backupとして、ログを検証します。

まず、存在しないパッケージ(ここでは、com.hoge.fugafuga)を指定した場合

$ adb backup -f test.ab com.hoge.fugafuga

●Galaxy Nexus

D/AndroidRuntime(12420): Calling main entry com.android.commands.bu.Backup
V/BackupManagerService( 323): Requesting full backup: apks=false shared=false all=false pkgs=[Ljava.lang.String;@42c4ee90
I/BackupManagerService( 323): Beginning full backup...
D/BackupManagerService( 323): Starting backup confirmation UI, token=1447621405
I/ActivityManager( 323): START {act=fullback flg=0x10000000 cmp=com.android.backupconfirm/.BackupRestoreConfirmation (has extras) u=0} from pid 323
D/BackupManagerService( 323): Waiting for full backup completion...
I/ActivityManager( 323): Displayed com.android.backupconfirm/.BackupRestoreConfirmation: +225ms
D/BackupManagerService( 323): Now staging backup of android
D/BackupManagerService( 323): acknowledgeFullBackupOrRestore : token=1447621405 allow=true
D/BackupManagerService( 323): Sending conf message with verb 2
I/BackupManagerService( 323): --- Performing full-dataset backup ---
W/BackupManagerService( 323): Unknown package com.hoge.fugafuga, skipping
D/BackupManagerService( 323): Full backup processing complete.
D/BackupManagerService( 323): Full backup pass complete.

●HTC J

D/AndroidRuntime( 6036): Calling main entry com.android.commands.bu.Backup
V/BackupManagerService(  438): Requesting full backup: apks=false shared=false all=false pkgs=[Ljava.lang.String;@415c0330
I/BackupManagerService(  438): Beginning full backup...
D/BackupManagerService(  438): Starting backup confirmation UI, token=2077778126
D/BackupManagerService(  438): Waiting for full backup completion...
I/ActivityManager(  438): Start proc com.android.backupconfirm for activity com.android.backupconfirm/.BackupRestoreConfirmation: pid=6052 uid=10008 gids={}
D/BackupRestoreConfirmation( 6052): Device is encrypted: requiring encryption pw
I/ActivityManager(  438): Displayed com.android.backupconfirm/.BackupRestoreConfirmation: +415ms
D/BackupManagerService(  438): acknowledgeFullBackupOrRestore : token=2077778126 allow=true
D/BackupManagerService(  438): Sending conf message with verb 2
I/BackupManagerService(  438): --- Performing full-dataset backup ---
W/BackupManagerService(  438): Unknown package com.hoge.fugafuga, skipping
D/BackupManagerService(  438): Full backup processing complete.
D/BackupManagerService(  438): Full backup pass complete.

どちらも、

Unknown package com.hoge.fugafuga, skipping

と言われます。しかしtest.dbは生成されます。
中身は以下の通り。

ANDROID BACKUP
1
1
none
x?c`?`?T

あとは、HTC Jのみに見られるログとして

D/BackupRestoreConfirmation( 6052): Device is encrypted: requiring encryption pw

というのがあります。これは何なのでしょうか…?

次に、存在するパッケージ(ここでは、com.android.settings)を指定します。

$ adb backup -f test.ab com.android.settings

●Galaxy Nexus

D/AndroidRuntime(12520): Calling main entry com.android.commands.bu.Backup
V/BackupManagerService(  323): Requesting full backup: apks=false shared=false all=false pkgs=[Ljava.lang.String;@42ead178
I/BackupManagerService(  323): Beginning full backup...
D/BackupManagerService(  323): Starting backup confirmation UI, token=183607054
I/ActivityManager(  323): START {act=fullback flg=0x10000000 cmp=com.android.backupconfirm/.BackupRestoreConfirmation (has extras) u=0} from pid 323
D/BackupManagerService(  323): Waiting for full backup completion...
I/ActivityManager(  323): Displayed com.android.backupconfirm/.BackupRestoreConfirmation: +204ms
D/BackupManagerService(  323): acknowledgeFullBackupOrRestore : token=183607054 allow=true
D/BackupManagerService(  323): Sending conf message with verb 2
I/BackupManagerService(  323): --- Performing full-dataset backup ---
D/BackupManagerService(  323): Binding to full backup agent : com.android.settings
D/BackupManagerService(  323): awaiting agent for ApplicationInfo{42b40698 com.android.settings}
D/BackupManagerService(  323): agentConnected pkg=com.android.settings agent=android.os.BinderProxy@429bc7b0
V/BackupServiceBinder(11521): doFullBackup() invoked
I/BackupManagerService(  323): got agent android.app.IBackupAgent$Stub$Proxy@428b69d8
D/BackupManagerService(  323): Calling doFullBackup() on com.android.settings
D/BackupManagerService(  323): Full package backup success: com.android.settings
D/BackupManagerService(  323): Full backup processing complete.
D/BackupManagerService(  323): Full backup pass complete.

●HTC J

D/AndroidRuntime( 6108): Calling main entry com.android.commands.bu.Backup
V/BackupManagerService(  438): Requesting full backup: apks=false shared=false all=false pkgs=[Ljava.lang.String;@41624708
I/BackupManagerService(  438): Beginning full backup...
D/BackupManagerService(  438): Starting backup confirmation UI, token=838286655
D/BackupManagerService(  438): Waiting for full backup completion...
D/BackupRestoreConfirmation( 6052): Device is encrypted: requiring encryption pw
I/ActivityManager(  438): Displayed com.android.backupconfirm/.BackupRestoreConfirmation: +164ms
D/BackupManagerService(  438): acknowledgeFullBackupOrRestore : token=838286655 allow=true
D/BackupManagerService(  438): Sending conf message with verb 2
I/BackupManagerService(  438): --- Performing full-dataset backup ---
D/BackupManagerService(  438): Binding to full backup agent : com.android.settings
W/BackupManagerService(  438): Unable to bind to full agent for com.android.settings
D/BackupManagerService(  438): Full backup processing complete.
D/BackupManagerService(  438): Full backup pass complete.

存在するパッケージを指定した場合、Galaxy Nexusでは

D/BackupManagerService(  323): Full package backup success: com.android.settings

となるのに対し、HTC Jでは

W/BackupManagerService(  438): Unable to bind to full agent for com.android.settings

となるようです。
この時、Galaxy Nexusで取ったtest.dbはそれらしいファイルになるのですが、
HTC Jで取ったtest.dbは存在しないパッケージを指定した時にできるファイルと中身が同じになってしまい、
バックアップに失敗しています。
コマンドに-allパラメータを付加すると動くという報告もありますし、
更なる検証が必要みたいです…

8/15 追記
どうやら取得できるパッケージと出来ないパッケージがある模様。
色々調べてもらってます。詳しくはTwitterで。

[`evernote` not found]

  1. コメントはまだありません。

  1. トラックバックはまだありません。