diff --git a/b2g_product.mk b/b2g_product.mk
index bc00959f920506e4783cb0303cc0e1d03bf52a6a..28b07976c727e32bd6e05e62ce12e11fb3578016 100644
--- a/b2g_product.mk
+++ b/b2g_product.mk
@@ -25,6 +25,7 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+ENABLE_DEFAULT_BOOTANIMATION:=true
 include gonk-misc/b2g.mk
 TARGET_PROVIDES_INIT_RC :=
 PRODUCT_PACKAGES := $(filter-out fakeperm rilproxy,$(PRODUCT_PACKAGES))
diff --git a/patch/all/frameworks/base/remove-bootanimation.sh b/patch/all/frameworks/base/remove-bootanimation.sh
new file mode 100644
index 0000000000000000000000000000000000000000..cb248a7e8c3c5c863116d6a3a556afe6ea292565
--- /dev/null
+++ b/patch/all/frameworks/base/remove-bootanimation.sh
@@ -0,0 +1 @@
+git_rm cmds/bootanimation/Android.mk
diff --git a/patch/ics_chocolate_rb4.2/hardware/qcom/display/preserve-framebuffer-contents-on-initialization.patch b/patch/ics_chocolate_rb4.2/hardware/qcom/display/preserve-framebuffer-contents-on-initialization.patch
new file mode 100644
index 0000000000000000000000000000000000000000..167d9ad1298e95d656b37db93008e69868a1961b
--- /dev/null
+++ b/patch/ics_chocolate_rb4.2/hardware/qcom/display/preserve-framebuffer-contents-on-initialization.patch
@@ -0,0 +1,24 @@
+Preserve framebuffer contents on initialization.
+
+This avoids a black flash while transitioning from the static boot image and
+boot animation.
+
+---
+ libgralloc/framebuffer.cpp |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/libgralloc/framebuffer.cpp b/libgralloc/framebuffer.cpp
+index 64e3c23..bf640bb 100644
+--- a/libgralloc/framebuffer.cpp
++++ b/libgralloc/framebuffer.cpp
+@@ -788,7 +788,6 @@ int mapFrameBufferLocked(struct private_module_t* module)
+         return -errno;
+     }
+     module->framebuffer->base = intptr_t(vaddr);
+-    memset(vaddr, 0, fbSize);
+ 
+ #if defined(HDMI_DUAL_DISPLAY)
+     /* Overlay for HDMI*/
+-- 
+1.7.0.4
+
diff --git a/patch/ics_strawberry/hardware/qcom/display/preserve-framebuffer-contents-on-initialization.patch b/patch/ics_strawberry/hardware/qcom/display/preserve-framebuffer-contents-on-initialization.patch
new file mode 100644
index 0000000000000000000000000000000000000000..aa5dbe80db73f40fbaa4e455f7187cee712ecdcf
--- /dev/null
+++ b/patch/ics_strawberry/hardware/qcom/display/preserve-framebuffer-contents-on-initialization.patch
@@ -0,0 +1,37 @@
+Preserve framebuffer contents on initialization.
+
+This avoids a black flash while transitioning from the static boot image and
+boot animation.
+
+---
+ libgralloc/a-family/framebuffer.cpp |    1 -
+ libgralloc/badger/framebuffer.cpp   |    1 -
+ 2 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/libgralloc/a-family/framebuffer.cpp b/libgralloc/a-family/framebuffer.cpp
+index e107312..b7c4379 100755
+--- a/libgralloc/a-family/framebuffer.cpp
++++ b/libgralloc/a-family/framebuffer.cpp
+@@ -956,7 +956,6 @@ int mapFrameBufferLocked(struct private_module_t* module)
+         return -errno;
+     }
+     module->framebuffer->base = intptr_t(vaddr);
+-    memset(vaddr, 0, fbSize);
+ 
+ #if defined(HDMI_DUAL_DISPLAY)
+     /* Overlay for HDMI*/
+diff --git a/libgralloc/badger/framebuffer.cpp b/libgralloc/badger/framebuffer.cpp
+index 63587c6..6554ac2 100644
+--- a/libgralloc/badger/framebuffer.cpp
++++ b/libgralloc/badger/framebuffer.cpp
+@@ -988,7 +988,6 @@ int mapFrameBufferLocked(struct private_module_t* module)
+         return -errno;
+     }
+     module->framebuffer->base = intptr_t(vaddr);
+-    memset(vaddr, 0, fbSize);
+ 
+ #if defined(HDMI_DUAL_DISPLAY)
+     /* Overlay for HDMI*/
+-- 
+1.7.0.4
+