summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorJason parks <jparks@google.com>2011-01-31 15:04:34 -0600
committerJason parks <jparks@google.com>2011-01-31 15:04:43 -0600
commitbd9a08d318f94a3d0b2f8f9d7b16b10736d80c5c (patch)
treea636c061499dd9b3f9be7816708da85cfe21dd23 /cmds
parente3004e7867925e70bf4930384a265106f45f87d6 (diff)
downloadframeworks_base-bd9a08d318f94a3d0b2f8f9d7b16b10736d80c5c.zip
frameworks_base-bd9a08d318f94a3d0b2f8f9d7b16b10736d80c5c.tar.gz
frameworks_base-bd9a08d318f94a3d0b2f8f9d7b16b10736d80c5c.tar.bz2
Show the encryption boot animation.
Change-Id: I15892a35238d97302b30f26bec170b9f231a3e15
Diffstat (limited to 'cmds')
-rw-r--r--cmds/bootanimation/BootAnimation.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index 6650a71..e07495d 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -23,6 +23,8 @@
#include <utils/misc.h>
#include <signal.h>
+#include <cutils/properties.h>
+
#include <binder/IPCThreadState.h>
#include <utils/threads.h>
#include <utils/Atomic.h>
@@ -51,6 +53,7 @@
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
+#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
namespace android {
@@ -248,11 +251,25 @@ status_t BootAnimation::readyToRun() {
mFlingerSurface = s;
mAndroidAnimation = true;
- if ((access(USER_BOOTANIMATION_FILE, R_OK) == 0) &&
- (mZip.open(USER_BOOTANIMATION_FILE) == NO_ERROR) ||
- (access(SYSTEM_BOOTANIMATION_FILE, R_OK) == 0) &&
- (mZip.open(SYSTEM_BOOTANIMATION_FILE) == NO_ERROR))
+
+ // If the device has encryption turned on or is in process
+ // of being encrypted we show the encrypted boot animation.
+ char decrypt[PROPERTY_VALUE_MAX];
+ property_get("vold.decrypt", decrypt, "");
+
+ bool encryptedAnimation = atoi(decrypt) != 0 || !strcmp("trigger_restart_min_framework", decrypt);
+
+ if ((encryptedAnimation &&
+ (access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE, R_OK) == 0) &&
+ (mZip.open(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE) == NO_ERROR)) ||
+
+ ((access(USER_BOOTANIMATION_FILE, R_OK) == 0) &&
+ (mZip.open(USER_BOOTANIMATION_FILE) == NO_ERROR)) ||
+
+ ((access(SYSTEM_BOOTANIMATION_FILE, R_OK) == 0) &&
+ (mZip.open(SYSTEM_BOOTANIMATION_FILE) == NO_ERROR))) {
mAndroidAnimation = false;
+ }
return NO_ERROR;
}