Initialize the pcm_config struct before pcm_open.
am: 269fa0b97c

Change-Id: Ia6430bee62104d9f7bc1d343905dffc46f5deb28
diff --git a/BoardConfig.mk b/BoardConfig.mk
index e705aed..b612d92 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -61,11 +61,6 @@
 BOARD_CHARGER_DISABLE_INIT_BLANK := true
 BOARD_USES_GENERIC_INVENSENSE := false
 
-# RenderScript
-OVERRIDE_RS_DRIVER := libnvRSDriver.so
-BOARD_OVERRIDE_RS_CPU_VARIANT_32 := cortex-a15
-BOARD_OVERRIDE_RS_CPU_VARIANT_64 := cortex-a57
-
 BOARD_USES_GENERIC_AUDIO := false
 BOARD_USES_ALSA_AUDIO := true
 
diff --git a/DragonKeyboard/Android.mk b/DragonKeyboard/Android.mk
index 661e69a..fe48304 100644
--- a/DragonKeyboard/Android.mk
+++ b/DragonKeyboard/Android.mk
@@ -42,7 +42,7 @@
 	$(hide) mkdir -p $(dir $@) && touch $@
 
 # Run validatekeymaps unconditionally for platform build.
-droidcore all_modules : $(LOCAL_BUILT_MODULE)
+droidcore : $(LOCAL_BUILT_MODULE)
 
 # Reset temp vars.
 validatekeymaps :=
diff --git a/crash_collector/coredump_writer.cc b/crash_collector/coredump_writer.cc
index 333edd4..521f0ea 100644
--- a/crash_collector/coredump_writer.cc
+++ b/crash_collector/coredump_writer.cc
@@ -24,8 +24,8 @@
 #include <unistd.h>
 
 #include <android-base/file.h>
+#include <android-base/unique_fd.h>
 #include <log/logger.h>
-#include <nativehelper/ScopedFd.h>
 
 // From external/google-breakpad.
 #include "common/linux/elf_core_dump.h"
@@ -114,15 +114,16 @@
 }
 
 ssize_t CoredumpWriter::WriteCoredump() {
-  ScopedFd fd_dest(TEMP_FAILURE_RETRY(open(coredump_filename_.c_str(),
-                                           O_WRONLY | O_CREAT | O_EXCL,
-                                           S_IRUSR | S_IWUSR)));
-  if (fd_dest.get() == -1) {
+  android::base::unique_fd fd_dest(
+      TEMP_FAILURE_RETRY(open(coredump_filename_.c_str(),
+                              O_WRONLY | O_CREAT | O_EXCL,
+                              S_IRUSR | S_IWUSR)));
+  if (fd_dest == -1) {
     ALOGE("Failed to open: %s, errno = %d", coredump_filename_.c_str(), errno);
     return -1;
   }
-  ssize_t result = WriteCoredumpToFD(fd_dest.get());
-  fd_dest.reset();
+  ssize_t result = WriteCoredumpToFD(fd_dest);
+  fd_dest.reset(-1);
   if (result == -1)
     unlink(coredump_filename_.c_str());
   return result;
@@ -371,25 +372,25 @@
     return false;
   }
 
-  ScopedFd fd(TEMP_FAILURE_RETRY(open(
+  android::base::unique_fd fd(TEMP_FAILURE_RETRY(open(
       output_path.c_str(), O_WRONLY | O_CREAT | O_CLOEXEC | O_EXCL,
       S_IRUSR | S_IWUSR)));
-  if (fd.get() == -1) {
+  if (fd == -1) {
     ALOGE("Failed to open %s", output_path.c_str());
     return false;
   }
   // The contents of NT_AUXV is in the same format as that of /proc/[pid]/auxv.
   return android::base::WriteFully(
-      fd.get(), note.GetDescription().data(), note.GetDescription().length());
+      fd, note.GetDescription().data(), note.GetDescription().length());
 }
 
 bool CoredumpWriter::WriteMaps(const std::vector<Phdr>& program_headers,
                                const FileMappings& file_mappings,
                                const std::string& output_path) {
-  ScopedFd fd(TEMP_FAILURE_RETRY(open(
+  android::base::unique_fd fd(TEMP_FAILURE_RETRY(open(
       output_path.c_str(), O_WRONLY | O_CREAT | O_CLOEXEC | O_EXCL,
       S_IRUSR | S_IWUSR)));
-  if (fd.get() == -1) {
+  if (fd == -1) {
     ALOGE("Failed to open %s", output_path.c_str());
     return false;
   }
@@ -418,7 +419,7 @@
         0,  // Fake inode value.
         path.c_str());
     if (len < 0 || len > kBufSize ||
-        !android::base::WriteFully(fd.get(), buf, len)) {
+        !android::base::WriteFully(fd, buf, len)) {
       return false;
     }
   }
diff --git a/crash_collector/crash_collector.cc b/crash_collector/crash_collector.cc
index 483b9b1..7cfc7e3 100644
--- a/crash_collector/crash_collector.cc
+++ b/crash_collector/crash_collector.cc
@@ -18,7 +18,9 @@
 
 #include <dirent.h>
 #include <errno.h>
+#include <pwd.h>
 #include <sys/capability.h>
+#include <sys/types.h>
 #include <unistd.h>
 
 #include <string>
@@ -202,13 +204,8 @@
   }
 
   // Username lookup.
-  std::string username;
-  for (size_t i = 0; i < android_id_count; ++i) {
-    if (android_ids[i].aid == appid) {
-      username = android_ids[i].name;
-      break;
-    }
-  }
+  passwd* pwd = getpwuid(appid);
+  std::string username((pwd != NULL) ? pwd->pw_name : "");
   // Delete old crash reports.
   if (!MakeRoomForNewReport()) {
     ALOGE("Failed to delete old crash reports.");
diff --git a/device.mk b/device.mk
index 7efaa97..5597684 100644
--- a/device.mk
+++ b/device.mk
@@ -57,6 +57,8 @@
 PRODUCT_PACKAGES += \
     libwpa_client \
     hostapd \
+    wificond \
+    wifilogd \
     wpa_supplicant \
     wpa_supplicant.conf \
     fs_config_files \
diff --git a/init.dragon.rc b/init.dragon.rc
index 2a0eba9..93292d7 100644
--- a/init.dragon.rc
+++ b/init.dragon.rc
@@ -217,7 +217,7 @@
     oneshot
     keycodes 114 115 116
 
-service p2p_supplicant /system/bin/wpa_supplicant \
+service wpa_supplicant /system/bin/wpa_supplicant \
     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
     -I/system/etc/wifi/p2p_supplicant_overlay.conf \
     -puse_p2p_group_interface=1p2p_device=1 \
@@ -228,15 +228,6 @@
     disabled
     oneshot
 
-service wpa_supplicant /system/bin/wpa_supplicant \
-    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-    -I/system/etc/wifi/wpa_supplicant_overlay.conf \
-    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
-    class late_start
-    socket wpa_wlan0 dgram 660 wifi wifi
-    disabled
-    oneshot
-
 service fwtool /system/bin/fwtool mark_boot success
     class late_start
     user root
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-af/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-af/strings.xml
deleted file mode 100644
index 9f9da10..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-af/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Lêers"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-am/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-am/strings.xml
deleted file mode 100644
index ece2325..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-am/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ፋይሎች"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ar/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ar/strings.xml
deleted file mode 100644
index 44f245c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ar/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"الملفات"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-az-rAZ/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-az-rAZ/strings.xml
deleted file mode 100644
index 84d7ffa..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-az-rAZ/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fayllar"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-b+sr+Latn/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index aa83376..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Datoteke"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-be-rBY/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-be-rBY/strings.xml
deleted file mode 100644
index a8be899..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-be-rBY/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файлы"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-bg/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-bg/strings.xml
deleted file mode 100644
index dddd0da..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-bg/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файлове"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-bn-rBD/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-bn-rBD/strings.xml
deleted file mode 100644
index 5c58fb2..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-bn-rBD/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ফাইলগুলি"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-bs-rBA/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-bs-rBA/strings.xml
deleted file mode 100644
index 7ae8482..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-bs-rBA/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fajlovi"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ca/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ca/strings.xml
deleted file mode 100644
index d3e2b32..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ca/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fitxers"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-cs/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-cs/strings.xml
deleted file mode 100644
index e2c9bd3..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-cs/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Soubory"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-da/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-da/strings.xml
deleted file mode 100644
index 3870b7e..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-da/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Filer"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-de/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-de/strings.xml
deleted file mode 100644
index 2140efa..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-de/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Dateien"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-el/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-el/strings.xml
deleted file mode 100644
index 14b747e..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-el/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Αρχεία"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rAU/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rAU/strings.xml
deleted file mode 100644
index 4fd80e7..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Files"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rGB/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rGB/strings.xml
deleted file mode 100644
index 4fd80e7..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Files"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rIN/strings.xml
deleted file mode 100644
index 4fd80e7..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Files"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-es-rUS/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
deleted file mode 100644
index e600e7c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Archivos"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-es/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-es/strings.xml
deleted file mode 100644
index e600e7c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-es/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Archivos"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-et-rEE/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-et-rEE/strings.xml
deleted file mode 100644
index 7ac0e35..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-et-rEE/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Failid"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-eu-rES/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-eu-rES/strings.xml
deleted file mode 100644
index 331afb2..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-eu-rES/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fitxategiak"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-fa/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-fa/strings.xml
deleted file mode 100644
index 84b8731..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-fa/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"فایل‌ها"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-fi/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-fi/strings.xml
deleted file mode 100644
index 8bdf655..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-fi/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Tiedostot"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-fr-rCA/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-fr-rCA/strings.xml
deleted file mode 100644
index d5be30c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fichiers"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-fr/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-fr/strings.xml
deleted file mode 100644
index d5be30c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-fr/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fichiers"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-gl-rES/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-gl-rES/strings.xml
deleted file mode 100644
index 6d3cbdb..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-gl-rES/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Ficheiros"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-gu-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-gu-rIN/strings.xml
deleted file mode 100644
index ac648ee..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-gu-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ફાઇલો"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-hi/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-hi/strings.xml
deleted file mode 100644
index 342bfef..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-hi/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"फ़ाइलें"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-hr/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-hr/strings.xml
deleted file mode 100644
index aa83376..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-hr/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Datoteke"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-hu/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-hu/strings.xml
deleted file mode 100644
index 047fd73..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-hu/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fájlok"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-hy-rAM/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-hy-rAM/strings.xml
deleted file mode 100644
index d27e6f3..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-hy-rAM/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Ֆայլեր"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-in/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-in/strings.xml
deleted file mode 100644
index 392ef2d..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-in/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"File"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-is-rIS/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-is-rIS/strings.xml
deleted file mode 100644
index e70ea63..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-is-rIS/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Skrár"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-it/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-it/strings.xml
deleted file mode 100644
index 392ef2d..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-it/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"File"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-iw/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-iw/strings.xml
deleted file mode 100644
index cd51f4b..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-iw/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"קבצים"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ja/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ja/strings.xml
deleted file mode 100644
index b135cfb..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ja/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ファイル"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ka-rGE/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ka-rGE/strings.xml
deleted file mode 100644
index f6f96e1..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ka-rGE/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ფაილები"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-kk-rKZ/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
deleted file mode 100644
index 37a289c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файлдар"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-km-rKH/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-km-rKH/strings.xml
deleted file mode 100644
index 14deb53..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-km-rKH/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ឯកសារ"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-kn-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-kn-rIN/strings.xml
deleted file mode 100644
index 93475bd..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-kn-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ಫೈಲ್‌ಗಳು"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ko/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ko/strings.xml
deleted file mode 100644
index b69a893..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ko/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"파일"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ky-rKG/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ky-rKG/strings.xml
deleted file mode 100644
index 37a289c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ky-rKG/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файлдар"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-lo-rLA/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-lo-rLA/strings.xml
deleted file mode 100644
index c711611..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-lo-rLA/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"​ໄຟລ໌"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-lt/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-lt/strings.xml
deleted file mode 100644
index c06b02d..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-lt/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Failai"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-lv/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-lv/strings.xml
deleted file mode 100644
index 8f4b917..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-lv/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Faili"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-mk-rMK/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-mk-rMK/strings.xml
deleted file mode 100644
index 7446531..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-mk-rMK/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Датотеки"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ml-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ml-rIN/strings.xml
deleted file mode 100644
index 13d3629..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ml-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ഫയലുകൾ"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-mn-rMN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-mn-rMN/strings.xml
deleted file mode 100644
index c07453c..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-mn-rMN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файл"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-mr-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-mr-rIN/strings.xml
deleted file mode 100644
index 171ed17..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-mr-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"फायली"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ms-rMY/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ms-rMY/strings.xml
deleted file mode 100644
index 84b1fdb..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ms-rMY/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fail"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-my-rMM/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-my-rMM/strings.xml
deleted file mode 100644
index c40ab7e..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-my-rMM/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ဖိုင်များ"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-nb/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-nb/strings.xml
deleted file mode 100644
index 3870b7e..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-nb/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Filer"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ne-rNP/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ne-rNP/strings.xml
deleted file mode 100644
index 170af30..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ne-rNP/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"फाइलहरू"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-nl/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-nl/strings.xml
deleted file mode 100644
index 144888a..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-nl/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Bestanden"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-pa-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-pa-rIN/strings.xml
deleted file mode 100644
index 953eae6..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-pa-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ਫ਼ਾਈਲਾਂ"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-pl/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-pl/strings.xml
deleted file mode 100644
index 4c3f6e5..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-pl/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Pliki"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-pt-rBR/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-pt-rBR/strings.xml
deleted file mode 100644
index d5aa3e8..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Arquivos"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-pt-rPT/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-pt-rPT/strings.xml
deleted file mode 100644
index 6d3cbdb..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Ficheiros"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-pt/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-pt/strings.xml
deleted file mode 100644
index d5aa3e8..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-pt/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Arquivos"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ro/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ro/strings.xml
deleted file mode 100644
index 77bd600..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ro/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fișiere"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ru/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ru/strings.xml
deleted file mode 100644
index a8be899..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ru/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файлы"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-si-rLK/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-si-rLK/strings.xml
deleted file mode 100644
index 85df47f..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-si-rLK/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ගොනු"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-sk/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-sk/strings.xml
deleted file mode 100644
index e42b0a7..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-sk/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Súbory"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-sl/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-sl/strings.xml
deleted file mode 100644
index aa83376..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-sl/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Datoteke"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-sq-rAL/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-sq-rAL/strings.xml
deleted file mode 100644
index dd966d3..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-sq-rAL/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Skedarët"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-sr/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-sr/strings.xml
deleted file mode 100644
index 77997c5..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-sr/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Датотеке"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-sv/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-sv/strings.xml
deleted file mode 100644
index 3870b7e..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-sv/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Filer"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-sw/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-sw/strings.xml
deleted file mode 100644
index 8f4b917..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-sw/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Faili"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ta-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ta-rIN/strings.xml
deleted file mode 100644
index 179603f..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ta-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"கோப்புகள்"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-te-rIN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-te-rIN/strings.xml
deleted file mode 100644
index c331ee0..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-te-rIN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ఫైల్‌లు"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-th/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-th/strings.xml
deleted file mode 100644
index 66637a2..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-th/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"ไฟล์"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-tl/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-tl/strings.xml
deleted file mode 100644
index c0770a0..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-tl/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Mga File"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-tr/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-tr/strings.xml
deleted file mode 100644
index 1dc5dc6..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-tr/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Dosyalar"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-uk/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-uk/strings.xml
deleted file mode 100644
index c23b93b..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-uk/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Файли"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-ur-rPK/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-ur-rPK/strings.xml
deleted file mode 100644
index 364c5da..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-ur-rPK/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"فائلیں"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-uz-rUZ/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
deleted file mode 100644
index 84d7ffa..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Fayllar"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-vi/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-vi/strings.xml
deleted file mode 100644
index 7e31a12..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-vi/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Tệp"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
deleted file mode 100644
index e40d006..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"文件"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rHK/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 98b66ae..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"檔案"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rTW/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 98b66ae..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"檔案"</string>
-</resources>
diff --git a/overlay/frameworks/base/packages/DocumentsUI/res/values-zu/strings.xml b/overlay/frameworks/base/packages/DocumentsUI/res/values-zu/strings.xml
deleted file mode 100644
index 6ff7d72..0000000
--- a/overlay/frameworks/base/packages/DocumentsUI/res/values-zu/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="downloads_label" msgid="8239453819144668344">"Amafayela"</string>
-</resources>
diff --git a/recovery/updater/Android.mk b/recovery/updater/Android.mk
index bcdc3db..4481a5f 100644
--- a/recovery/updater/Android.mk
+++ b/recovery/updater/Android.mk
@@ -3,24 +3,37 @@
 LOCAL_PATH := $(call my-dir)
 
 include $(CLEAR_VARS)
-LOCAL_CLANG := true
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE := librecovery_updater_dragon
-LOCAL_SRC_FILES := flash_ec.c flash_mtd.c flash_device.c vboot_interface.c flash_file.cpp recovery_updater.cpp update_fw.cpp
+LOCAL_SRC_FILES := \
+    flash_ec.c \
+    flash_mtd.c \
+    flash_device.c \
+    flash_file.cpp \
+    vboot_interface.c \
+    recovery_updater.cpp \
+    update_fw.cpp
 LOCAL_C_INCLUDES += bootable/recovery
 # For vboot_struct.h
 LOCAL_C_INCLUDES += external/vboot_reference/firmware/include
+LOCAL_CFLAGS += -Werror
 
 include $(BUILD_STATIC_LIBRARY)
 
 include $(CLEAR_VARS)
-LOCAL_CLANG := true
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE := librecovery_ui_dragon
-LOCAL_SRC_FILES := flash_ec.c flash_mtd.c flash_device.c vboot_interface.c flash_file.cpp recovery_ui.cpp update_fw.cpp
+LOCAL_SRC_FILES := \
+    flash_ec.c \
+    flash_mtd.c \
+    flash_device.c \
+    flash_file.cpp \
+    vboot_interface.c \
+    recovery_ui.cpp
 LOCAL_C_INCLUDES += bootable/recovery
 # For vboot_struct.h
 LOCAL_C_INCLUDES += external/vboot_reference/firmware/include
+LOCAL_CFLAGS += -Werror
 
 include $(BUILD_STATIC_LIBRARY)
 
diff --git a/recovery/updater/flash_device.h b/recovery/updater/flash_device.h
index f152adb..684a9e1 100644
--- a/recovery/updater/flash_device.h
+++ b/recovery/updater/flash_device.h
@@ -23,7 +23,7 @@
 #include <stdint.h>
 
 struct flash_device_ops {
-	char * const name;
+	const char * const name;
 	void *(*open)(const void *params);
 	void (*close)(void *hnd);
 	int (*read)(void *hnd, off_t offset, void *buffer, size_t count);
diff --git a/recovery/updater/flash_file.cpp b/recovery/updater/flash_file.cpp
index 4bdff9d..340150f 100644
--- a/recovery/updater/flash_file.cpp
+++ b/recovery/updater/flash_file.cpp
@@ -40,45 +40,45 @@
 static void *file_blob_open(struct file_data *dev, const Value *param)
 {
 	dev->fd = -1; /* No backing file */
-	dev->data = reinterpret_cast<uint8_t*>(param->data);
+	dev->data = const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(&param->data[0]));
 
-	dev->info.st_size = param->size;
+	dev->info.st_size = param->data.size();
 
 	return dev;
 }
 
 static void *file_open(const void *params)
 {
-	const Value *value = reinterpret_cast<const Value*>(params);
-	struct file_data *dev = reinterpret_cast<struct file_data*>(calloc(1, sizeof(struct file_data)));
+	struct file_data *dev = static_cast<struct file_data*>(calloc(1, sizeof(struct file_data)));
 	if (!dev)
 		return NULL;
 
+	const Value *value = static_cast<const Value*>(params);
 	if (value->type == VAL_BLOB)
 		return file_blob_open(dev, value);
 
 	if (value->type != VAL_STRING)
 		return NULL;
 
-	dev->fd = open(value->data, O_RDWR);
+	dev->fd = open(value->data.c_str(), O_RDWR);
 	if (dev->fd == -1) {
-		ALOGE("Cannot open file %s : %d\n", value->data, errno);
+		ALOGE("Cannot open file %s : %d\n", value->data.c_str(), errno);
 		goto out_free;
 	}
 
 	if (fstat(dev->fd, &dev->info)) {
-		ALOGE("Cannot get file info for %s : %d\n", value->data, errno);
+		ALOGE("Cannot get file info for %s : %d\n", value->data.c_str(), errno);
 		goto out_close;
 	}
 
-	dev->data = reinterpret_cast<uint8_t*>(mmap(NULL, dev->info.st_size, PROT_READ | PROT_WRITE,
+	dev->data = static_cast<uint8_t*>(mmap(NULL, dev->info.st_size, PROT_READ | PROT_WRITE,
 			 MAP_SHARED, dev->fd, 0));
 	if (dev->data == (void *)-1) {
-		ALOGE("Cannot mmap %s : %d\n", value->data, errno);
+		ALOGE("Cannot mmap %s : %d\n", value->data.c_str(), errno);
 		goto out_close;
 	}
 
-	ALOGD("File %s: size %lld blksize %ld\n", value->data,
+	ALOGD("File %s: size %lld blksize %ld\n", value->data.c_str(),
 		(long long)dev->info.st_size, (long)dev->info.st_blksize);
 
 	return dev;
@@ -93,7 +93,7 @@
 
 static void file_close(void *hnd)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	if (dev->fd > 0) {
 		munmap(dev->data, dev->info.st_size);
@@ -104,7 +104,7 @@
 
 static int file_read(void *hnd, off_t offset, void *buffer, size_t count)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	if (offset + (off_t)count > dev->info.st_size) {
 		ALOGW("Invalid offset/size %ld + %zd > %lld\n",
@@ -119,7 +119,7 @@
 
 static int file_write(void *hnd, off_t offset, void *buffer, size_t count)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	if (offset + (off_t)count > dev->info.st_size) {
 		ALOGW("Invalid offset/size %ld + %zd > %lld\n",
@@ -134,7 +134,7 @@
 
 static int file_erase(void *hnd, off_t offset, size_t count)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	if (offset + (off_t)count > dev->info.st_size) {
 		ALOGW("Invalid offset/size %ld + %zd > %lld\n",
@@ -149,28 +149,28 @@
 
 static size_t file_get_size(void *hnd)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	return dev ? dev->info.st_size : 0;
 }
 
 static size_t file_get_write_size(void *hnd)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	return dev && dev->fd > 0 ? dev->info.st_blksize : 0;
 }
 
 static size_t file_get_erase_size(void *hnd)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	return dev && dev->fd > 0 ? dev->info.st_blksize : 0;
 }
 
 static off_t file_get_fmap_offset(void *hnd)
 {
-	struct file_data *dev = reinterpret_cast<struct file_data*>(hnd);
+	struct file_data *dev = static_cast<struct file_data*>(hnd);
 
 	return dev->info.st_size;
 }
diff --git a/recovery/updater/fwtool.cpp b/recovery/updater/fwtool.cpp
index 3c074e7..e5fa50f 100644
--- a/recovery/updater/fwtool.cpp
+++ b/recovery/updater/fwtool.cpp
@@ -121,15 +121,12 @@
 
 static int cmd_update(int argc, const char **argv)
 {
-	Value mainv, ecv;
 	if (argc < 3)
 		return -EINVAL;
 
 	printf("Updating using images main:%s and ec:%s ...\n", argv[1], argv[2]);
-	mainv.type = VAL_STRING;
-	mainv.data = const_cast<char*>(argv[1]);
-	ecv.type = VAL_STRING;
-	ecv.data = const_cast<char*>(argv[2]);
+	Value mainv(VAL_STRING, argv[1]);
+	Value ecv(VAL_STRING, argv[2]);
 	update_fw(&mainv, &ecv, 1);
 	printf("Done.\n");
 
diff --git a/recovery/updater/recovery_ui.cpp b/recovery/updater/recovery_ui.cpp
index f8ea1ae..abdb576 100644
--- a/recovery/updater/recovery_ui.cpp
+++ b/recovery/updater/recovery_ui.cpp
@@ -14,57 +14,39 @@
  * limitations under the License.
  */
 
-#include <errno.h>
-#include <fcntl.h>
-#include <linux/fb.h>
-#include <pthread.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <time.h>
-#include <unistd.h>
 
 #include "common.h"
-#include "debug_cmd.h"
 #include "device.h"
-#include "edify/expr.h"
 #include "flash_device.h"
-#include "fmap.h"
 #include "screen_ui.h"
 #include "ui.h"
-#include "update_fw.h"
 #include "vboot_interface.h"
 
-extern char *reason;
-
 class DragonDevice : public Device {
   public:
     DragonDevice(RecoveryUI* ui) : Device(ui) { }
 
     virtual bool PostWipeData() {
+        if (reason) {
+            struct flash_device *spi = flash_open("spi", NULL);
 
-	if (reason) {
-		struct flash_device *spi = flash_open("spi", NULL);
+            if (spi == NULL) {
+                return true;
+            }
 
-		if (spi == NULL)
-			return true;
+            if (!strcmp(reason, "fastboot_oem_unlock")) {
+                vbnv_set_flag(spi, "dev_boot_fastboot_full_cap", 0x1);
+                vbnv_set_flag(spi, "recovery_reason", 0xC3);
+            } else if (!strcmp(reason, "fastboot_oem_lock")) {
+                vbnv_set_flag(spi, "dev_boot_fastboot_full_cap", 0x0);
+                vbnv_set_flag(spi, "recovery_reason", 0xC3);
+            }
 
-		if (!strcmp(reason, "fastboot_oem_unlock")) {
-			vbnv_set_flag(spi, "dev_boot_fastboot_full_cap", 0x1);
-			vbnv_set_flag(spi, "recovery_reason", 0xC3);
-		} else if (!strcmp(reason, "fastboot_oem_lock")) {
-			vbnv_set_flag(spi, "dev_boot_fastboot_full_cap", 0x0);
-			vbnv_set_flag(spi, "recovery_reason", 0xC3);
-		}
+            flash_close(spi);
+        }
 
-		flash_close(spi);
-	}
-
-	return true;
+        return true;
     };
 };
 
diff --git a/recovery/updater/recovery_updater.cpp b/recovery/updater/recovery_updater.cpp
index a95748c..9519310 100644
--- a/recovery/updater/recovery_updater.cpp
+++ b/recovery/updater/recovery_updater.cpp
@@ -20,36 +20,37 @@
 #include <string.h>
 #include <unistd.h>
 
+#include <memory>
+#include <string>
+#include <vector>
+
 #include "edify/expr.h"
 #include "update_fw.h"
 
 Value* firmware_update(const char *name, State * state, int argc, Expr * argv[]) {
-	Value *firmware;
-	Value *ec;
-	int res;
-	Value *retval = NULL;
-
 	printf("%s: running %s.\n", __func__, name);
 	if (argc < 2) {
-		ErrorAbort(state, "syntax: %s bios.bin ec.bin", name);
-		return NULL;
+		ErrorAbort(state, kArgsParsingFailure, "syntax: %s bios.bin ec.bin", name);
+		return nullptr;
 	}
-	if (ReadValueArgs(state, argv, 2, &firmware, &ec) < 0) {
-		ErrorAbort(state, "%s: invalid arguments", name);
-		return NULL;
+	std::vector<std::unique_ptr<Value>> args;
+	if (!ReadValueArgs(state, 2, argv, &args)) {
+		ErrorAbort(state, kArgsParsingFailure, "%s: invalid arguments", name);
+		return nullptr;
 	}
+	const Value *firmware = args[0].get();
+	const Value *ec = args[1].get();
 
-	res = update_fw(firmware, ec, 0);
-	if (res < 0)
-		ErrorAbort(state, "%s: firmware update error", name);
-	else
-		retval = StringValue(strdup(res ? "UPDATED" : ""));
-
-	FreeValue(firmware);
-	FreeValue(ec);
+	Value *retval = nullptr;
+	int res = update_fw(firmware, ec, 0);
+	if (res < 0) {
+		ErrorAbort(state, kVendorFailure, "%s: firmware update error", name);
+	} else {
+		retval = StringValue(res ? "UPDATED" : "");
+	}
 
 	printf("%s: [%s] done.\n", __func__,
-		retval ? retval->data : state->errmsg);
+		retval ? retval->data.c_str() : state->errmsg.c_str());
 	return retval;
 }
 
diff --git a/recovery/updater/update_fw.cpp b/recovery/updater/update_fw.cpp
index fcb2a09..8608db3 100644
--- a/recovery/updater/update_fw.cpp
+++ b/recovery/updater/update_fw.cpp
@@ -81,7 +81,7 @@
 }
 
 static int update_recovery_fw(struct flash_device *spi, struct flash_device *ec,
-			      struct flash_device *img, Value *ec_file)
+			      struct flash_device *img, const Value *ec_file)
 {
 	int res, ra, rb, rs;
 	int wp = 1; /* TODO: read SPI read-write */
@@ -166,7 +166,7 @@
 	return res;
 }
 
-int update_fw(Value *fw_file, Value *ec_file, int force)
+int update_fw(const Value *fw_file, const Value *ec_file, int force)
 {
 	int res = -EINVAL;
 	struct flash_device *img, *spi, *ec;
diff --git a/recovery/updater/update_fw.h b/recovery/updater/update_fw.h
index 0c37759..8eca107 100644
--- a/recovery/updater/update_fw.h
+++ b/recovery/updater/update_fw.h
@@ -19,6 +19,6 @@
 
 #include "edify/expr.h"
 
-int update_fw(Value *fw_file, Value *ec_file, int force);
+int update_fw(const Value *fw_file, const Value *ec_file, int force);
 
 #endif /* _RECOVERY_UPDATE_FW_H_ */
diff --git a/sepolicy/attributes b/sepolicy/attributes
new file mode 100644
index 0000000..d140949
--- /dev/null
+++ b/sepolicy/attributes
@@ -0,0 +1,4 @@
+# domain_deprecated attribute is being removed from core policy. Leave it
+# in device-specific policy for device-specific domains. Unlike core policy,
+# device-specific policy will eventually be deprecated.
+attribute device_domain_deprecated;
diff --git a/sepolicy/crash_collector.te b/sepolicy/crash_collector.te
index 2f941f0..eab0428 100644
--- a/sepolicy/crash_collector.te
+++ b/sepolicy/crash_collector.te
@@ -1,4 +1,4 @@
-type crash_collector, domain, domain_deprecated;
+type crash_collector, domain, device_domain_deprecated;
 type crash_collector_exec, exec_type, file_type;
 type crash_reports_data_file, file_type, data_file_type;
 
diff --git a/sepolicy/crash_collector_app.te b/sepolicy/crash_collector_app.te
index 166ec1a..5759943 100644
--- a/sepolicy/crash_collector_app.te
+++ b/sepolicy/crash_collector_app.te
@@ -1,4 +1,4 @@
-type crash_collector_app, domain, domain_deprecated;
+type crash_collector_app, domain, device_domain_deprecated;
 
 # com.google.android.crashuploader runs in the crash_collector_app domain
 app_domain(crash_collector_app)
@@ -6,4 +6,4 @@
 
 allow crash_collector_app crash_reports_data_file:file { read getattr };
 
-allow crash_collector_app { service_manager_type -gatekeeper_service -netd_service }:service_manager find;
+allow crash_collector_app { service_manager_type -gatekeeper_service -netd_service -dumpstate_service -installd_service}:service_manager find;
diff --git a/sepolicy/device_domain_deprecated.te b/sepolicy/device_domain_deprecated.te
new file mode 100644
index 0000000..bbe0b71
--- /dev/null
+++ b/sepolicy/device_domain_deprecated.te
@@ -0,0 +1,36 @@
+allow device_domain_deprecated adbd:unix_stream_socket connectto;
+allow device_domain_deprecated adbd:fd use;
+allow device_domain_deprecated adbd:unix_stream_socket { getattr getopt ioctl read write shutdown };
+allow device_domain_deprecated rootfs:dir r_dir_perms;
+allow device_domain_deprecated rootfs:file r_file_perms;
+allow device_domain_deprecated rootfs:lnk_file r_file_perms;
+allow device_domain_deprecated device:file read;
+allow device_domain_deprecated system_file:dir r_dir_perms;
+allow device_domain_deprecated system_file:file r_file_perms;
+allow device_domain_deprecated system_file:lnk_file r_file_perms;
+allow device_domain_deprecated system_data_file:file { getattr read };
+allow device_domain_deprecated system_data_file:lnk_file r_file_perms;
+allow device_domain_deprecated apk_data_file:dir { getattr search };
+allow device_domain_deprecated apk_data_file:file r_file_perms;
+allow device_domain_deprecated apk_data_file:lnk_file r_file_perms;
+allow device_domain_deprecated dalvikcache_data_file:dir { search getattr };
+allow device_domain_deprecated dalvikcache_data_file:file r_file_perms;
+allow device_domain_deprecated cache_file:dir r_dir_perms;
+allow device_domain_deprecated cache_file:file { getattr read };
+allow device_domain_deprecated cache_file:lnk_file r_file_perms;
+allow device_domain_deprecated ion_device:chr_file rw_file_perms;
+allow device_domain_deprecated proc:dir r_dir_perms;
+allow device_domain_deprecated proc:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated sysfs:dir r_dir_perms;
+allow device_domain_deprecated sysfs:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated inotify:dir r_dir_perms;
+allow device_domain_deprecated inotify:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated cgroup:dir r_dir_perms;
+allow device_domain_deprecated cgroup:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated proc_meminfo:file r_file_perms;
+allow device_domain_deprecated proc_net:dir r_dir_perms;
+allow device_domain_deprecated proc_net:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated selinuxfs:dir r_dir_perms;
+allow device_domain_deprecated selinuxfs:file r_file_perms;
+allow device_domain_deprecated asec_public_file:file r_file_perms;
+allow device_domain_deprecated { asec_public_file asec_apk_file }:dir r_dir_perms;
diff --git a/sepolicy/dump_bq25892.te b/sepolicy/dump_bq25892.te
index 2812862..286de95 100644
--- a/sepolicy/dump_bq25892.te
+++ b/sepolicy/dump_bq25892.te
@@ -1,6 +1,6 @@
 # permissions for /system/bin/dump_bq25892.sh
 # which is used to debug information about the state of the charger chip
-type dump_bq25892, domain, domain_deprecated;
+type dump_bq25892, domain, device_domain_deprecated;
 type dump_bq25892_exec, exec_type, file_type;
 type fw_logs_data_file, file_type, data_file_type;
 
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 2f094fc..c35cd0d 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -19,10 +19,13 @@
 /dev/dri/renderD129                             u:object_r:host1x_device:s0
 /dev/sw_sync                                    u:object_r:sw_sync_device:s0
 /dev/ttyTHS3                                    u:object_r:hci_attach_dev:s0
-/dev/focuser                                    u:object_r:video_device:s0
+/dev/focuser                                    u:object_r:camera_device:s0
 /dev/cros_ec                                    u:object_r:cros_ec_device:s0
 /dev/hidraw0                                    u:object_r:hidraw_device:s0
 
+# sysfs files used by wifi
+/sys/module/bcmdhd/parameters/firmware_path     u:object_r:sysfs_wlan_fwpath:s0
+
 # system executables
 /system/bin/init_regions\.sh                    u:object_r:locale_exec:s0
 /system/bin/tune-thermal-gov\.sh                u:object_r:thermal_gov_exec:s0
@@ -38,8 +41,8 @@
 /data/system/crash_reports(/.*)?                u:object_r:crash_reports_data_file:s0
 
 # camera
-/dev/imx219                                     u:object_r:video_device:s0
-/dev/imx208                                     u:object_r:video_device:s0
+/dev/imx219                                     u:object_r:camera_device:s0
+/dev/imx208                                     u:object_r:camera_device:s0
 
 # /sys/
 /sys/devices/bt_bcm4354(/.*)?                   u:object_r:sysfs_bluetooth:s0
diff --git a/sepolicy/fwtool.te b/sepolicy/fwtool.te
index 39bc4d1..04f4d66 100644
--- a/sepolicy/fwtool.te
+++ b/sepolicy/fwtool.te
@@ -1,5 +1,5 @@
 # permissions for /system/bin/fwtool
-type fwtool, domain, domain_deprecated;
+type fwtool, domain, device_domain_deprecated;
 type fwtool_exec, exec_type, file_type;
 
 init_daemon_domain(fwtool)
diff --git a/sepolicy/locale.te b/sepolicy/locale.te
index 4531414..3a349a1 100644
--- a/sepolicy/locale.te
+++ b/sepolicy/locale.te
@@ -1,6 +1,6 @@
 # init_regions.sh reads region from vpd and sets
 # ro.product.locale property
-type locale, domain, domain_deprecated;
+type locale, domain, device_domain_deprecated;
 type locale_exec, exec_type, file_type;
 
 init_daemon_domain(locale)
diff --git a/sepolicy/rmi4update.te b/sepolicy/rmi4update.te
index 0f86c21..9ea2d39 100644
--- a/sepolicy/rmi4update.te
+++ b/sepolicy/rmi4update.te
@@ -1,5 +1,5 @@
 # init runs /system/bin/touchfwup.sh which runs rmi4update
-type rmi4update, domain, domain_deprecated;
+type rmi4update, domain, device_domain_deprecated;
 type rmi4update_exec, exec_type, file_type;
 
 init_daemon_domain(rmi4update)
diff --git a/sepolicy/thermal_gov.te b/sepolicy/thermal_gov.te
index ffaef81..61425c0 100644
--- a/sepolicy/thermal_gov.te
+++ b/sepolicy/thermal_gov.te
@@ -1,5 +1,5 @@
 # permissions for /system/bin/tune-thermal-gov.sh
-type thermal_gov, domain, domain_deprecated;
+type thermal_gov, domain, device_domain_deprecated;
 type thermal_gov_exec, exec_type, file_type;
 
 init_daemon_domain(thermal_gov)
diff --git a/sepolicy/touch_fw_update.te b/sepolicy/touch_fw_update.te
index 7829649..2f62e04 100644
--- a/sepolicy/touch_fw_update.te
+++ b/sepolicy/touch_fw_update.te
@@ -1,5 +1,5 @@
 # init runs /system/bin/touchfwup.sh
-type touch_fw_update, domain, domain_deprecated;
+type touch_fw_update, domain, device_domain_deprecated;
 type touch_fw_update_exec, exec_type, file_type;
 type touch_fw_update_log_file, file_type, data_file_type;
 
diff --git a/ueventd.dragon.rc b/ueventd.dragon.rc
index a759274..02d54c0 100644
--- a/ueventd.dragon.rc
+++ b/ueventd.dragon.rc
@@ -10,9 +10,9 @@
 /dev/dri/render*        0666   system     graphics
 
 # BT
-/dev/ttyTHS3            0660   bluetooth  net_bt_stack
-/sys/devices/bt_bcm4354/rfkill/rfkill0  state  0660    bluetooth    net_bt_stack
-/sys/devices/bt_bcm4354/rfkill/rfkill0  type   0660    bluetooth    net_bt_stack
+/dev/ttyTHS3            0660   bluetooth  bluetooth
+/sys/devices/bt_bcm4354/rfkill/rfkill0  state  0660    bluetooth    bluetooth
+/sys/devices/bt_bcm4354/rfkill/rfkill0  type   0660    bluetooth    bluetooth
 
 # Backlight
 /sys/devices/50000000.host1x/54400000.dsi/54400000.dsi.0/backlight/lpm102a188a-backlight	brightness	0660	system	system