update_engine: never enable BCJ.

This was only enabled for 32-bit, has been demonstrated not to
reduce OTA sizes, and we have a build in dogfood that can't decode
BCJ output.

Bug: http://b/333826436
Change-Id: I3cd81b65f943d4ab6c5d981dbe6e9d5bf336e612
diff --git a/payload_generator/xz_android.cc b/payload_generator/xz_android.cc
index 9d157c4..97e2c32 100644
--- a/payload_generator/xz_android.cc
+++ b/payload_generator/xz_android.cc
@@ -16,9 +16,6 @@
 
 #include "update_engine/payload_generator/xz.h"
 
-#include <elf.h>
-#include <endian.h>
-
 #include <algorithm>
 
 #include <7zCrc.h>
@@ -68,37 +65,6 @@
   brillo::Blob* data_;
 };
 
-// Returns the filter id to be used to compress |data|.
-// Only BCJ filter for x86 and ARM ELF file are supported, returns 0 otherwise.
-int GetFilterID(const brillo::Blob& data) {
-  if (data.size() < sizeof(Elf32_Ehdr) ||
-      memcmp(data.data(), ELFMAG, SELFMAG) != 0)
-    return 0;
-
-  const Elf32_Ehdr* header = reinterpret_cast<const Elf32_Ehdr*>(data.data());
-
-  // Only little-endian is supported.
-  if (header->e_ident[EI_DATA] != ELFDATA2LSB)
-    return 0;
-
-  switch (le16toh(header->e_machine)) {
-    case EM_386:
-    case EM_X86_64:
-      return XZ_ID_X86;
-    case EM_ARM:
-      // Both ARM and ARM Thumb instructions could be found in the same ARM ELF
-      // file. We choose to use the ARM Thumb filter here because testing shows
-      // that it usually works better than the ARM filter.
-      return XZ_ID_ARMT;
-#ifdef EM_AARCH64
-    case EM_AARCH64:
-      // Neither the ARM nor the ARM Thumb filter works well with AArch64.
-      return 0;
-#endif
-  }
-  return 0;
-}
-
 }  // namespace
 
 namespace chromeos_update_engine {
@@ -139,7 +105,8 @@
   Lzma2EncProps_Normalize(&lzma2Props);
   props.lzma2Props = lzma2Props;
 
-  props.filterProps.id = GetFilterID(in);
+  // We do not use xz's BCJ filters (http://b/329112384).
+  props.filterProps.id = 0;
 
   BlobWriterStream out_writer(out);
   BlobReaderStream in_reader(in);