summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-26 14:19:59 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-06-26 14:19:59 -0700
commitd09f86ce175fad6ddbd446363f327dfa0575a1d2 (patch)
tree1402e4c2472e7e4ec6e09e51d608d29e4f40f7d9
parent17a80081a42410f541a220ab7e6afc64fc6cc399 (diff)
parent568bc32344dce841c8f6958f1a65ff839a1b64c0 (diff)
downloadframeworks_base-d09f86ce175fad6ddbd446363f327dfa0575a1d2.zip
frameworks_base-d09f86ce175fad6ddbd446363f327dfa0575a1d2.tar.gz
frameworks_base-d09f86ce175fad6ddbd446363f327dfa0575a1d2.tar.bz2
Merge changes 5548,5549 into donut
* changes: Better (and less) logging from backup. Add an extra null terminator. String8::unlockBuffer is supposed to be doing this, but it's not and I can't figure out why. This makes BackupHelperDispatcher able to read the keys correctly.
-rw-r--r--core/jni/android_backup_BackupHelperDispatcher.cpp12
-rw-r--r--libs/utils/BackupData.cpp5
-rw-r--r--libs/utils/BackupHelpers.cpp7
3 files changed, 19 insertions, 5 deletions
diff --git a/core/jni/android_backup_BackupHelperDispatcher.cpp b/core/jni/android_backup_BackupHelperDispatcher.cpp
index 24d529b..2e3f0b9 100644
--- a/core/jni/android_backup_BackupHelperDispatcher.cpp
+++ b/core/jni/android_backup_BackupHelperDispatcher.cpp
@@ -87,6 +87,14 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
}
}
+#if 0
+ LOGD("chunk header:");
+ LOGD(" headerSize=%d", flattenedHeader.headerSize);
+ LOGD(" version=0x%08x", flattenedHeader.version);
+ LOGD(" dataSize=%d", flattenedHeader.dataSize);
+ LOGD(" nameLength=%d", flattenedHeader.nameLength);
+#endif
+
if (flattenedHeader.dataSize < 0 || flattenedHeader.nameLength < 0 ||
remainingHeader < flattenedHeader.nameLength) {
LOGW("Malformed V1 header remainingHeader=%d dataSize=%d nameLength=%d", remainingHeader,
@@ -101,13 +109,12 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
}
amt = read(fd, buf, flattenedHeader.nameLength);
+ buf[flattenedHeader.nameLength] = 0;
keyPrefix.unlockBuffer(flattenedHeader.nameLength);
remainingHeader -= flattenedHeader.nameLength;
- LOGD("remainingHeader=%d", remainingHeader);
-
if (remainingHeader > 0) {
lseek(fd, remainingHeader, SEEK_CUR);
}
@@ -183,6 +190,7 @@ writeHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj,
header.headerSize = sizeof(chunk_header_v1) + header.nameLength + namePadding;
header.version = VERSION_1_HEADER;
+ header.dataSize = prevPos - (pos + header.headerSize);
lseek(fd, pos, SEEK_SET);
err = write(fd, &header, sizeof(chunk_header_v1));
diff --git a/libs/utils/BackupData.cpp b/libs/utils/BackupData.cpp
index 0868cff..cce754a 100644
--- a/libs/utils/BackupData.cpp
+++ b/libs/utils/BackupData.cpp
@@ -107,7 +107,10 @@ BackupDataWriter::WriteEntityHeader(const String8& key, size_t dataSize)
} else {
k = key;
}
- LOGD("m_keyPrefix=%s key=%s k=%s", m_keyPrefix.string(), key.string(), k.string());
+ if (true) {
+ LOGD("Writing entity: prefix='%s' key='%s' dataSize=%d", m_keyPrefix.string(), key.string(),
+ dataSize);
+ }
entity_header_v1 header;
ssize_t keyLen;
diff --git a/libs/utils/BackupHelpers.cpp b/libs/utils/BackupHelpers.cpp
index 99a4abc..4ad9b51 100644
--- a/libs/utils/BackupHelpers.cpp
+++ b/libs/utils/BackupHelpers.cpp
@@ -68,11 +68,15 @@ struct file_metadata_v1 {
const static int CURRENT_METADATA_VERSION = 1;
-#if 1 // TEST_BACKUP_HELPERS
+#if 1
+#define LOGP(f, x...)
+#else
+#if TEST_BACKUP_HELPERS
#define LOGP(f, x...) printf(f "\n", x)
#else
#define LOGP(x...) LOGD(x)
#endif
+#endif
const static int ROUND_UP[4] = { 0, 3, 2, 1 };
@@ -349,7 +353,6 @@ back_up_files(int oldSnapshotFD, BackupDataWriter* dataStream, int newSnapshotFD
err = stat(file, &st);
if (err != 0) {
- LOGW("Error stating file %s", file);
r.deleted = true;
} else {
r.deleted = false;