diff --git a/tools/acp/Android.bp b/tools/acp/Android.bp
index faf2034..64f5a10 100644
--- a/tools/acp/Android.bp
+++ b/tools/acp/Android.bp
@@ -5,6 +5,7 @@
 cc_binary_host {
 
     srcs: ["acp.c"],
+    cflags: ["-Wall", "-Werror"],
 
     static_libs: ["libhost"],
     name: "acp",
diff --git a/tools/acp/acp.c b/tools/acp/acp.c
index eb1de1f..d4a9fbc 100644
--- a/tools/acp/acp.c
+++ b/tools/acp/acp.c
@@ -41,10 +41,9 @@
 int process(int argc, char* const argv[], unsigned int options)
 {
     int retVal = 0;
-    int i, cc;
+    int i;
     char* stripDest = NULL;
     int stripDestLen;
-    struct stat destStat;
     bool destMustBeDir = false;
     struct stat sb;
 
diff --git a/tools/atree/Android.bp b/tools/atree/Android.bp
index 3c3a8ef..5fbe042 100644
--- a/tools/atree/Android.bp
+++ b/tools/atree/Android.bp
@@ -9,5 +9,6 @@
         "files.cpp",
         "fs.cpp",
     ],
+    cflags: ["-Wall", "-Werror"],
     static_libs: ["libhost"],
 }
diff --git a/tools/atree/files.cpp b/tools/atree/files.cpp
index d945f58..d5c8a97 100644
--- a/tools/atree/files.cpp
+++ b/tools/atree/files.cpp
@@ -425,8 +425,6 @@
                 const vector<string>& excludes,
                 vector<FileRecord>* more)
 {
-    int err;
-
     string full = path_append(rec.sourceBase, rec.sourceName);
     full = path_append(full, path);
 
diff --git a/tools/dump-package-stats b/tools/dump-package-stats
index d11e727..7814368 100755
--- a/tools/dump-package-stats
+++ b/tools/dump-package-stats
@@ -77,7 +77,7 @@
     then
         fail "$file doesn't exist or isn't a file"
     fi
-    unzip -lv "$file" | awk '
+    unzip -lvq "$file" | awk '
         BEGIN {
           total_compressed = 0;
           total_uncompressed = 0;
@@ -88,16 +88,6 @@
         # Make sure the output of unzip -lv looks like something we expect.
         #
         NR == "1" {
-            if ($1 != "Archive:") {
-                print "'$PROGNAME': ERROR: Unexpected zip listing format" > \
-                        "/dev/stderr";
-                print "'$PROGNAME': ERROR: Line 1 is \"" $0 "\"" > \
-                        "/dev/stderr";
-                failed = 1;
-                exit 1;
-            }
-        }
-        NR == "2" {
             if (NF != "8" ||
                 $1 != "Length" ||
                 $2 != "Method" ||
diff --git a/tools/fs_get_stats/Android.bp b/tools/fs_get_stats/Android.bp
index 6684319..67742b8 100644
--- a/tools/fs_get_stats/Android.bp
+++ b/tools/fs_get_stats/Android.bp
@@ -1,6 +1,7 @@
 cc_binary_host {
     name: "fs_get_stats",
     srcs: ["fs_get_stats.c"],
+    cflags: ["-Wall", "-Werror"],
     shared_libs: [
         "libcutils",
         "liblog",
diff --git a/tools/zipalign/Android.bp b/tools/zipalign/Android.bp
index cfc6aec..2aa6450 100644
--- a/tools/zipalign/Android.bp
+++ b/tools/zipalign/Android.bp
@@ -13,6 +13,8 @@
         "ZipFile.cpp",
     ],
 
+    cflags: ["-Wall", "-Werror"],
+
     static_libs: [
         "libandroidfw",
         "libutils",
diff --git a/tools/zipalign/ZipFile.cpp b/tools/zipalign/ZipFile.cpp
index 1b39902..719c6b9 100644
--- a/tools/zipalign/ZipFile.cpp
+++ b/tools/zipalign/ZipFile.cpp
@@ -785,8 +785,6 @@
 status_t ZipFile::copyDataToFp(FILE* dstFp,
     const void* data, size_t size, uint32_t* pCRC32)
 {
-    size_t count;
-
     *pCRC32 = crc32(0L, Z_NULL, 0);
     if (size > 0) {
         *pCRC32 = crc32(*pCRC32, (const unsigned char*)data, size);
diff --git a/tools/ziptime/Android.bp b/tools/ziptime/Android.bp
index 874d346..5ef45ed 100644
--- a/tools/ziptime/Android.bp
+++ b/tools/ziptime/Android.bp
@@ -27,6 +27,7 @@
     ],
 
     name: "ziptime",
+    cflags: ["-Wall", "-Werror"],
     target: {
         windows: {
             enabled: true,
diff --git a/tools/ziptime/ZipEntry.cpp b/tools/ziptime/ZipEntry.cpp
index 51ce09f..e7b52ed 100644
--- a/tools/ziptime/ZipEntry.cpp
+++ b/tools/ziptime/ZipEntry.cpp
@@ -86,7 +86,6 @@
  */
 status_t ZipEntry::LocalFileHeader::rewrite(FILE* fp)
 {
-    status_t result = 0;
     uint8_t buf[kLFHLen];
 
     if (fread(buf, 1, kLFHLen, fp) != kLFHLen)
@@ -124,7 +123,6 @@
  */
 status_t ZipEntry::CentralDirEntry::rewrite(FILE* fp)
 {
-    status_t result = 0;
     uint8_t buf[kCDELen];
     uint16_t fileNameLength, extraFieldLength, fileCommentLength;
 
