Turn on -Werror for recovery

Also remove the 0xff comparison when validating the bootloader
message fields. As the fields won't be erased to 0xff after we
remove the MTD support.

Bug: 28202046
Test: The recovery folder compiles for aosp_x86-eng
Change-Id: Ibb30ea1b2b28676fb08c7e92a1e5f7b6ef3247ab
(cherry picked from commit 7aa88748f6ec4e53333d1a15747bc44826ccc410)
diff --git a/Android.mk b/Android.mk
index 74910a1..1855623 100644
--- a/Android.mk
+++ b/Android.mk
@@ -65,7 +65,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 += \
@@ -150,6 +150,7 @@
     verifier.cpp \
     ui.cpp
 LOCAL_STATIC_LIBRARIES := libcrypto_utils libcrypto libbase
+LOCAL_CFLAGS := -Werror
 include $(BUILD_STATIC_LIBRARY)
 
 include \
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/bootloader_message/Android.mk b/bootloader_message/Android.mk
index 815ac67..a8c5081 100644
--- a/bootloader_message/Android.mk
+++ b/bootloader_message/Android.mk
@@ -19,6 +19,7 @@
 LOCAL_SRC_FILES := bootloader_message.cpp
 LOCAL_MODULE := libbootloader_message
 LOCAL_STATIC_LIBRARIES := libbase libfs_mgr
+LOCAL_CFLAGS := -Werror
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
 include $(BUILD_STATIC_LIBRARY)
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 c7d840d..7419bac 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -318,12 +318,12 @@
     }
     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;
     }
@@ -340,7 +340,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 bb276ed..97fc708 100644
--- a/uncrypt/Android.mk
+++ b/uncrypt/Android.mk
@@ -17,16 +17,15 @@
 include $(CLEAR_VARS)
 
 LOCAL_CLANG := true
-
 LOCAL_SRC_FILES := uncrypt.cpp
-
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
-
 LOCAL_MODULE := uncrypt
-
-LOCAL_STATIC_LIBRARIES := libbootloader_message libbase \
-                          liblog libfs_mgr libcutils \
-
+LOCAL_STATIC_LIBRARIES := libbootloader_message \
+                          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 2bfd016..090db99 100644
--- a/update_verifier/Android.mk
+++ b/update_verifier/Android.mk
@@ -23,5 +23,6 @@
 LOCAL_SHARED_LIBRARIES := libbase libcutils libhardware liblog
 
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
+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 \