diff --git a/Android.mk b/Android.mk
index 76e99b6..7fa98b0 100644
--- a/Android.mk
+++ b/Android.mk
@@ -66,7 +66,7 @@
 RECOVERY_API_VERSION := 3
 RECOVERY_FSTAB_VERSION := 2
 LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
-LOCAL_CFLAGS += -Wno-unused-parameter
+LOCAL_CFLAGS += -Wno-unused-parameter -Werror
 LOCAL_CLANG := true
 
 LOCAL_C_INCLUDES += \
@@ -146,6 +146,7 @@
     verifier.cpp \
     ui.cpp
 LOCAL_STATIC_LIBRARIES := libcrypto_utils libcrypto libbase
+LOCAL_CFLAGS := -Werror
 include $(BUILD_STATIC_LIBRARY)
 
 include $(LOCAL_PATH)/minui/Android.mk \
diff --git a/applypatch/Android.mk b/applypatch/Android.mk
index 0fc6e36..77e499e 100644
--- a/applypatch/Android.mk
+++ b/applypatch/Android.mk
@@ -36,6 +36,7 @@
     libcrypto \
     libbz \
     libz
+LOCAL_CFLAGS := -Werror
 include $(BUILD_STATIC_LIBRARY)
 
 # libimgpatch (static library)
@@ -49,6 +50,7 @@
     bootable/recovery
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
 LOCAL_STATIC_LIBRARIES += libcrypto libbz libz
+LOCAL_CFLAGS := -Werror
 include $(BUILD_STATIC_LIBRARY)
 
 # libimgpatch (host static library)
@@ -63,6 +65,7 @@
     bootable/recovery
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
 LOCAL_STATIC_LIBRARIES += libcrypto libbz libz
+LOCAL_CFLAGS := -Werror
 include $(BUILD_HOST_STATIC_LIBRARY)
 
 # applypatch (executable)
@@ -81,6 +84,7 @@
     libcrypto \
     libbz
 LOCAL_SHARED_LIBRARIES += libbase libz libcutils libc
+LOCAL_CFLAGS := -Werror
 include $(BUILD_EXECUTABLE)
 
 # imgdiff (host static executable)
@@ -95,5 +99,6 @@
     libdivsufsort64 \
     libdivsufsort \
     libz
+LOCAL_CFLAGS := -Werror
 LOCAL_FORCE_STATIC_EXECUTABLE := true
 include $(BUILD_HOST_EXECUTABLE)
diff --git a/edify/Android.mk b/edify/Android.mk
index 71cf765..b397045 100644
--- a/edify/Android.mk
+++ b/edify/Android.mk
@@ -16,6 +16,7 @@
 		$(edify_src_files) \
 		main.cpp
 
+LOCAL_CFLAGS := -Werror
 LOCAL_CPPFLAGS := -g -O0
 LOCAL_MODULE := edify
 LOCAL_YACCFLAGS := -v
@@ -34,6 +35,7 @@
 
 LOCAL_SRC_FILES := $(edify_src_files)
 
+LOCAL_CFLAGS := -Werror
 LOCAL_CPPFLAGS := -Wno-unused-parameter
 LOCAL_CPPFLAGS += -Wno-deprecated-register
 LOCAL_MODULE := libedify
diff --git a/minui/Android.mk b/minui/Android.mk
index 380ec2b..67b81fc 100644
--- a/minui/Android.mk
+++ b/minui/Android.mk
@@ -13,6 +13,7 @@
 LOCAL_WHOLE_STATIC_LIBRARIES += libdrm
 LOCAL_WHOLE_STATIC_LIBRARIES += libsync_recovery
 LOCAL_STATIC_LIBRARIES += libpng
+LOCAL_CFLAGS := -Werror
 
 LOCAL_MODULE := libminui
 
@@ -46,4 +47,5 @@
 LOCAL_MODULE := libminui
 LOCAL_WHOLE_STATIC_LIBRARIES += libminui
 LOCAL_SHARED_LIBRARIES := libpng
+LOCAL_CFLAGS := -Werror
 include $(BUILD_SHARED_LIBRARY)
diff --git a/otafault/Android.mk b/otafault/Android.mk
index 47c0405..82c2671 100644
--- a/otafault/Android.mk
+++ b/otafault/Android.mk
@@ -23,6 +23,7 @@
     libbase \
     liblog
 
+LOCAL_CFLAGS := -Werror
 LOCAL_SRC_FILES := config.cpp ota_io.cpp
 LOCAL_MODULE_TAGS := eng
 LOCAL_MODULE := libotafault
@@ -41,6 +42,7 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_MODULE := otafault_test
 LOCAL_STATIC_LIBRARIES := $(otafault_static_libs)
+LOCAL_CFLAGS := -Werror
 LOCAL_C_INCLUDES := bootable/recovery
 LOCAL_FORCE_STATIC_EXECUTABLE := true
 
diff --git a/recovery.cpp b/recovery.cpp
index 91c18b5..12df61d 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -306,12 +306,12 @@
     get_bootloader_message(&boot);  // this may fail, leaving a zeroed structure
     stage = strndup(boot.stage, sizeof(boot.stage));
 
-    if (boot.command[0] != 0 && boot.command[0] != 255) {
+    if (boot.command[0] != 0) {
         std::string boot_command = std::string(boot.command, sizeof(boot.command));
         LOG(INFO) << "Boot command: " << boot_command;
     }
 
-    if (boot.status[0] != 0 && boot.status[0] != 255) {
+    if (boot.status[0] != 0) {
         std::string boot_status = std::string(boot.status, sizeof(boot.status));
         LOG(INFO) << "Boot status: " << boot_status;
     }
@@ -328,7 +328,7 @@
                 (*argv)[*argc] = strdup(arg);
             }
             LOG(INFO) << "Got arguments from boot message";
-        } else if (boot.recovery[0] != 0 && boot.recovery[0] != 255) {
+        } else if (boot.recovery[0] != 0) {
             std::string boot_recovery = std::string(boot.recovery, 20);
             LOG(ERROR) << "Bad boot message\n" << "\"" <<boot_recovery << "\"";
         }
diff --git a/tests/Android.mk b/tests/Android.mk
index 633b3c4..0754c7a 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -19,6 +19,7 @@
 # Unit tests
 include $(CLEAR_VARS)
 LOCAL_CLANG := true
+LOCAL_CFLAGS := -Werror
 LOCAL_MODULE := recovery_unit_test
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 LOCAL_STATIC_LIBRARIES := \
@@ -35,7 +36,7 @@
 # Component tests
 include $(CLEAR_VARS)
 LOCAL_CLANG := true
-LOCAL_CFLAGS += -Wno-unused-parameter
+LOCAL_CFLAGS += -Wno-unused-parameter -Werror
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 LOCAL_MODULE := recovery_component_test
 LOCAL_C_INCLUDES := bootable/recovery
diff --git a/uncrypt/Android.mk b/uncrypt/Android.mk
index 09cfdfc..3613799 100644
--- a/uncrypt/Android.mk
+++ b/uncrypt/Android.mk
@@ -19,23 +19,24 @@
 LOCAL_SRC_FILES := bootloader_message_writer.cpp
 LOCAL_MODULE := libbootloader_message_writer
 LOCAL_STATIC_LIBRARIES := libbase libfs_mgr
+LOCAL_CFLAGS := -Werror
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+
 include $(BUILD_STATIC_LIBRARY)
 
 include $(CLEAR_VARS)
 
 LOCAL_CLANG := true
-
 LOCAL_SRC_FILES := uncrypt.cpp
-
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
-
 LOCAL_MODULE := uncrypt
-
-LOCAL_STATIC_LIBRARIES := libbootloader_message_writer libbase \
-                          liblog libfs_mgr libcutils \
-
+LOCAL_STATIC_LIBRARIES := libbootloader_message_writer \
+                          libbase \
+                          liblog \
+                          libfs_mgr \
+                          libcutils
+LOCAL_CFLAGS := -Werror
 LOCAL_INIT_RC := uncrypt.rc
 
 include $(BUILD_EXECUTABLE)
diff --git a/update_verifier/Android.mk b/update_verifier/Android.mk
index ed61c7b..8f5194d 100644
--- a/update_verifier/Android.mk
+++ b/update_verifier/Android.mk
@@ -20,5 +20,6 @@
 LOCAL_SRC_FILES := update_verifier.cpp
 LOCAL_MODULE := update_verifier
 LOCAL_SHARED_LIBRARIES := libhardware libbase
+LOCAL_CFLAGS := -Werror
 
 include $(BUILD_EXECUTABLE)
diff --git a/updater/Android.mk b/updater/Android.mk
index e4d73a4..507088d 100644
--- a/updater/Android.mk
+++ b/updater/Android.mk
@@ -61,7 +61,7 @@
     libtune2fs \
     $(tune2fs_static_libraries)
 
-LOCAL_CFLAGS += -Wno-unused-parameter
+LOCAL_CFLAGS += -Wno-unused-parameter -Werror
 LOCAL_C_INCLUDES += system/extras/ext4_utils
 LOCAL_STATIC_LIBRARIES += \
     libsparse_static \
