diff --git a/BoardConfig.mk b/BoardConfig.mk
index b62a927..d025af7 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -16,7 +16,6 @@
 
 TARGET_CPU_ABI := armeabi-v7a
 TARGET_CPU_ABI2 := armeabi
-TARGET_CPU_SMP := true
 TARGET_ARCH := arm
 TARGET_ARCH_VARIANT := armv7-a-neon
 TARGET_CPU_VARIANT := krait
diff --git a/ShamuLayout/res/values-af/strings.xml b/ShamuLayout/res/values-af/strings.xml
deleted file mode 100644
index 8f3f7c2..0000000
--- a/ShamuLayout/res/values-af/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6-tuisskerm"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Skep"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-am/strings.xml b/ShamuLayout/res/values-am/strings.xml
deleted file mode 100644
index 91baaa5..0000000
--- a/ShamuLayout/res/values-am/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 መነሻ ማያ"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"ፍጠር"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ar/strings.xml b/ShamuLayout/res/values-ar/strings.xml
deleted file mode 100644
index 6aafd3d..0000000
--- a/ShamuLayout/res/values-ar/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"‏شاشة جهاز Nexus 6 الرئيسية"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"إنشاء"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-bg/strings.xml b/ShamuLayout/res/values-bg/strings.xml
deleted file mode 100644
index 4b3d7a3..0000000
--- a/ShamuLayout/res/values-bg/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Начален екран на Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Googlе"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Създаване"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ca/strings.xml b/ShamuLayout/res/values-ca/strings.xml
deleted file mode 100644
index f6c7037..0000000
--- a/ShamuLayout/res/values-ca/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Pantalla d\'inici de Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Creació"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-cs/strings.xml b/ShamuLayout/res/values-cs/strings.xml
deleted file mode 100644
index fc64569..0000000
--- a/ShamuLayout/res/values-cs/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Plocha tabletu Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Vytvořit"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Přehrát"</string>
-</resources>
diff --git a/ShamuLayout/res/values-da/strings.xml b/ShamuLayout/res/values-da/strings.xml
deleted file mode 100644
index 3d35a11..0000000
--- a/ShamuLayout/res/values-da/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Startskærm på Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Opret"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-de/strings.xml b/ShamuLayout/res/values-de/strings.xml
deleted file mode 100644
index 9ac1a96..0000000
--- a/ShamuLayout/res/values-de/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6-Startbildschirm"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Erstellen"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-el/strings.xml b/ShamuLayout/res/values-el/strings.xml
deleted file mode 100644
index ce43a97..0000000
--- a/ShamuLayout/res/values-el/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Αρχική οθόνη Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Δημιουργία"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Αναπαραγωγή"</string>
-</resources>
diff --git a/ShamuLayout/res/values-en-rGB/strings.xml b/ShamuLayout/res/values-en-rGB/strings.xml
deleted file mode 100644
index f70e03d..0000000
--- a/ShamuLayout/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Home Screen"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Create"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-en-rIN/strings.xml b/ShamuLayout/res/values-en-rIN/strings.xml
deleted file mode 100644
index f70e03d..0000000
--- a/ShamuLayout/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Home Screen"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Create"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-es-rUS/strings.xml b/ShamuLayout/res/values-es-rUS/strings.xml
deleted file mode 100644
index 7614e0d..0000000
--- a/ShamuLayout/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Pantalla principal de Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Crear"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-es/strings.xml b/ShamuLayout/res/values-es/strings.xml
deleted file mode 100644
index bdfc978..0000000
--- a/ShamuLayout/res/values-es/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Pantalla de inicio de Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Crear"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Reproducir"</string>
-</resources>
diff --git a/ShamuLayout/res/values-et-rEE/strings.xml b/ShamuLayout/res/values-et-rEE/strings.xml
deleted file mode 100644
index 08af861..0000000
--- a/ShamuLayout/res/values-et-rEE/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 avaekraan"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Loomine"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Esitamine"</string>
-</resources>
diff --git a/ShamuLayout/res/values-fa/strings.xml b/ShamuLayout/res/values-fa/strings.xml
deleted file mode 100644
index 4e57eb5..0000000
--- a/ShamuLayout/res/values-fa/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"‏صفحه اصلی Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"ایجاد"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"پخش"</string>
-</resources>
diff --git a/ShamuLayout/res/values-fi/strings.xml b/ShamuLayout/res/values-fi/strings.xml
deleted file mode 100644
index 33366d6..0000000
--- a/ShamuLayout/res/values-fi/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6:n aloitusruutu"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Luo"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Toista"</string>
-</resources>
diff --git a/ShamuLayout/res/values-fr-rCA/strings.xml b/ShamuLayout/res/values-fr-rCA/strings.xml
deleted file mode 100644
index 910b509..0000000
--- a/ShamuLayout/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Écran d\'accueil du Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Créer"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-fr/strings.xml b/ShamuLayout/res/values-fr/strings.xml
deleted file mode 100644
index de0a5c1..0000000
--- a/ShamuLayout/res/values-fr/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Écran d\'accueil du Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Créer"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-hi/strings.xml b/ShamuLayout/res/values-hi/strings.xml
deleted file mode 100644
index 65711ed..0000000
--- a/ShamuLayout/res/values-hi/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 होम स्क्रीन"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"बनाएं"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"चलाएं"</string>
-</resources>
diff --git a/ShamuLayout/res/values-hr/strings.xml b/ShamuLayout/res/values-hr/strings.xml
deleted file mode 100644
index a39e96f..0000000
--- a/ShamuLayout/res/values-hr/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Početni zaslon Nexusa 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Izrada"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-hu/strings.xml b/ShamuLayout/res/values-hu/strings.xml
deleted file mode 100644
index d710449..0000000
--- a/ShamuLayout/res/values-hu/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 kezdőképernyő"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Létrehozás"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-hy-rAM/strings.xml b/ShamuLayout/res/values-hy-rAM/strings.xml
deleted file mode 100644
index 38fa107..0000000
--- a/ShamuLayout/res/values-hy-rAM/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 հիմնական էկրան"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Ստեղծել"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-in/strings.xml b/ShamuLayout/res/values-in/strings.xml
deleted file mode 100644
index e98234c..0000000
--- a/ShamuLayout/res/values-in/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Layar Utama Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Buat"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-it/strings.xml b/ShamuLayout/res/values-it/strings.xml
deleted file mode 100644
index 3bf6d7e..0000000
--- a/ShamuLayout/res/values-it/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Schermata Home del Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Crea"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-iw/strings.xml b/ShamuLayout/res/values-iw/strings.xml
deleted file mode 100644
index bc74ede..0000000
--- a/ShamuLayout/res/values-iw/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"‏מסך דף הבית של Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"צור"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ja/strings.xml b/ShamuLayout/res/values-ja/strings.xml
deleted file mode 100644
index e0508dc..0000000
--- a/ShamuLayout/res/values-ja/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6ホーム画面"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"作成"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ka-rGE/strings.xml b/ShamuLayout/res/values-ka-rGE/strings.xml
deleted file mode 100644
index 3d8fa72..0000000
--- a/ShamuLayout/res/values-ka-rGE/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 მთავარი ეკრანი"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"შექმნა"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-km-rKH/strings.xml b/ShamuLayout/res/values-km-rKH/strings.xml
deleted file mode 100644
index 521f27c..0000000
--- a/ShamuLayout/res/values-km-rKH/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"អេក្រង់​ដើម Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"បង្កើត"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"ចាក់"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ko/strings.xml b/ShamuLayout/res/values-ko/strings.xml
deleted file mode 100644
index e266731..0000000
--- a/ShamuLayout/res/values-ko/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 메인 스크린"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"만들기"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-lo-rLA/strings.xml b/ShamuLayout/res/values-lo-rLA/strings.xml
deleted file mode 100644
index ee4740c..0000000
--- a/ShamuLayout/res/values-lo-rLA/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"ໜ້າຫຼັກ Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"ສ້າງ"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"ຫຼິ້ນ"</string>
-</resources>
diff --git a/ShamuLayout/res/values-lt/strings.xml b/ShamuLayout/res/values-lt/strings.xml
deleted file mode 100644
index 9f17d19..0000000
--- a/ShamuLayout/res/values-lt/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Pagrindinis „Nexus 6“ ekranas"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Sukurti"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-lv/strings.xml b/ShamuLayout/res/values-lv/strings.xml
deleted file mode 100644
index 39c3219..0000000
--- a/ShamuLayout/res/values-lv/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 sākuma ekrāns"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Izveidot"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Atskaņot"</string>
-</resources>
diff --git a/ShamuLayout/res/values-mn-rMN/strings.xml b/ShamuLayout/res/values-mn-rMN/strings.xml
deleted file mode 100644
index 328998f..0000000
--- a/ShamuLayout/res/values-mn-rMN/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Үндсэн дэлгэц"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Үүсгэх"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ms-rMY/strings.xml b/ShamuLayout/res/values-ms-rMY/strings.xml
deleted file mode 100644
index e8bc50b..0000000
--- a/ShamuLayout/res/values-ms-rMY/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Skrin Utama Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Buat"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-nb/strings.xml b/ShamuLayout/res/values-nb/strings.xml
deleted file mode 100644
index 23e5168..0000000
--- a/ShamuLayout/res/values-nb/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6-startsiden"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Opprett"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-nl/strings.xml b/ShamuLayout/res/values-nl/strings.xml
deleted file mode 100644
index 399f81c..0000000
--- a/ShamuLayout/res/values-nl/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6-startscherm"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Maken"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Afspelen"</string>
-</resources>
diff --git a/ShamuLayout/res/values-pl/strings.xml b/ShamuLayout/res/values-pl/strings.xml
deleted file mode 100644
index 65267f7..0000000
--- a/ShamuLayout/res/values-pl/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Ekran główny Nexusa 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Utwórz"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-pt-rPT/strings.xml b/ShamuLayout/res/values-pt-rPT/strings.xml
deleted file mode 100644
index 3871f43..0000000
--- a/ShamuLayout/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Ecrã principal do Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Criar"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-pt/strings.xml b/ShamuLayout/res/values-pt/strings.xml
deleted file mode 100644
index cc60a5f..0000000
--- a/ShamuLayout/res/values-pt/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Tela inicial do Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Criar"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ro/strings.xml b/ShamuLayout/res/values-ro/strings.xml
deleted file mode 100644
index f087d26..0000000
--- a/ShamuLayout/res/values-ro/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Ecranul de pornire Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Creați"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Redați"</string>
-</resources>
diff --git a/ShamuLayout/res/values-ru/strings.xml b/ShamuLayout/res/values-ru/strings.xml
deleted file mode 100644
index 287011d..0000000
--- a/ShamuLayout/res/values-ru/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Главный экран Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Создать"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-sk/strings.xml b/ShamuLayout/res/values-sk/strings.xml
deleted file mode 100644
index 1043e53..0000000
--- a/ShamuLayout/res/values-sk/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Plocha zariadenia Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Vytvoriť"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-sl/strings.xml b/ShamuLayout/res/values-sl/strings.xml
deleted file mode 100644
index f1be526..0000000
--- a/ShamuLayout/res/values-sl/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Začetni zaslon Nexusa 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Ustvari"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-sr/strings.xml b/ShamuLayout/res/values-sr/strings.xml
deleted file mode 100644
index ab08dd6..0000000
--- a/ShamuLayout/res/values-sr/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Почетни екран Nexus-а 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Направи"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-sv/strings.xml b/ShamuLayout/res/values-sv/strings.xml
deleted file mode 100644
index b5f30b6..0000000
--- a/ShamuLayout/res/values-sv/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Startskärm för Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Skapa"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-sw/strings.xml b/ShamuLayout/res/values-sw/strings.xml
deleted file mode 100644
index fc0cb46..0000000
--- a/ShamuLayout/res/values-sw/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Skrini ya Kwanza ya Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Unda"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-th/strings.xml b/ShamuLayout/res/values-th/strings.xml
deleted file mode 100644
index 1a2a44e..0000000
--- a/ShamuLayout/res/values-th/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"หน้าจอหลักของ Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"สร้าง"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"เล่น"</string>
-</resources>
diff --git a/ShamuLayout/res/values-tl/strings.xml b/ShamuLayout/res/values-tl/strings.xml
deleted file mode 100644
index 13e9505..0000000
--- a/ShamuLayout/res/values-tl/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Home Screen ng Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Gumawa"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"I-play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-tr/strings.xml b/ShamuLayout/res/values-tr/strings.xml
deleted file mode 100644
index 80f22f8..0000000
--- a/ShamuLayout/res/values-tr/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Ana Ekranı"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Oluştur"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-uk/strings.xml b/ShamuLayout/res/values-uk/strings.xml
deleted file mode 100644
index bd1cfda..0000000
--- a/ShamuLayout/res/values-uk/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Головний екран Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Створити"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-vi/strings.xml b/ShamuLayout/res/values-vi/strings.xml
deleted file mode 100644
index dcebff1..0000000
--- a/ShamuLayout/res/values-vi/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Màn hình chính Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Tạo"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Phát"</string>
-</resources>
diff --git a/ShamuLayout/res/values-zh-rCN/strings.xml b/ShamuLayout/res/values-zh-rCN/strings.xml
deleted file mode 100644
index a43a46d..0000000
--- a/ShamuLayout/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6主屏幕"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"创建"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-zh-rHK/strings.xml b/ShamuLayout/res/values-zh-rHK/strings.xml
deleted file mode 100644
index eed3e51..0000000
--- a/ShamuLayout/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 主畫面"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"建立"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"播放"</string>
-</resources>
diff --git a/ShamuLayout/res/values-zh-rTW/strings.xml b/ShamuLayout/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 1a46e1e..0000000
--- a/ShamuLayout/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Nexus 6 主螢幕"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"建立"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
-</resources>
diff --git a/ShamuLayout/res/values-zu/strings.xml b/ShamuLayout/res/values-zu/strings.xml
deleted file mode 100644
index 2edce08..0000000
--- a/ShamuLayout/res/values-zu/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="4827444239162090155">"Isikrini sasekhaya se-Nexus 6"</string>
-    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
-    <string name="create_folder_title" msgid="1626185277541881691">"Dala"</string>
-    <string name="play_folder_title" msgid="8796147714003891112">"I-Play"</string>
-</resources>
diff --git a/camera/QCamera/stack/mm-camera-interface/Android.mk b/camera/QCamera/stack/mm-camera-interface/Android.mk
index cf76532..13db124 100644
--- a/camera/QCamera/stack/mm-camera-interface/Android.mk
+++ b/camera/QCamera/stack/mm-camera-interface/Android.mk
@@ -49,7 +49,6 @@
 LOCAL_SRC_FILES := $(MM_CAM_FILES)
 
 LOCAL_MODULE           := libmmcamera_interface
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libdl libcutils liblog
 LOCAL_MODULE_TAGS := optional
 
diff --git a/camera/QCamera/stack/mm-jpeg-interface/Android.mk b/camera/QCamera/stack/mm-jpeg-interface/Android.mk
index c7d151c..508be47 100644
--- a/camera/QCamera/stack/mm-jpeg-interface/Android.mk
+++ b/camera/QCamera/stack/mm-jpeg-interface/Android.mk
@@ -29,7 +29,6 @@
     src/mm_jpeg_interface.c
 
 LOCAL_MODULE           := libmmjpeg_interface
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libdl libcutils liblog libmmstillomx libimage-jpeg-enc-omx-comp
 LOCAL_MODULE_TAGS := optional
 
diff --git a/camera/QCamera2/Android.mk b/camera/QCamera2/Android.mk
index 9cf5509..2f6149f 100644
--- a/camera/QCamera2/Android.mk
+++ b/camera/QCamera2/Android.mk
@@ -4,6 +4,20 @@
 
 include $(CLEAR_VARS)
 
+# QCameraParameters.h has unused private field.
+# QCamera2Hal.cpp, QCamera3HWI.cpp, etc. use GNU old-style field designator extension.
+# QCamera3PostProc.cpp has unused label.
+# QCamera3HWI.cpp, QCamera3PostProc.cpp etc. have unused variable.
+# QCamera3Channel.cpp compares array to null pointer.
+# QCamera2Factory.cpp, QCamera3HWI.cpp, etc. have unused parameter.
+LOCAL_CLANG_CFLAGS += \
+        -Wno-error=unused-private-field \
+        -Wno-error=gnu-designator \
+        -Wno-error=unused-label \
+        -Wno-error=unused-variable \
+        -Wno-error=unused-parameter \
+        -Wno-error=tautological-pointer-compare \
+
 LOCAL_SRC_FILES := \
         util/QCameraCmdThread.cpp \
         util/QCameraQueue.cpp \
diff --git a/camera/QCamera2/HAL/QCamera2HWI.cpp b/camera/QCamera2/HAL/QCamera2HWI.cpp
index d8f5933..51222ba 100644
--- a/camera/QCamera2/HAL/QCamera2HWI.cpp
+++ b/camera/QCamera2/HAL/QCamera2HWI.cpp
@@ -6177,7 +6177,6 @@
 {
     int running = 1;
     int ret;
-    uint8_t is_active = FALSE;
 
     QCamera2HardwareInterface *pme = (QCamera2HardwareInterface *)obj;
     QCameraCmdThread *cmdThread = &pme->mDefferedWorkThread;
@@ -6197,11 +6196,9 @@
         switch (cmd) {
         case CAMERA_CMD_TYPE_START_DATA_PROC:
             CDBG_HIGH("%s: start data proc", __func__);
-            is_active = TRUE;
             break;
         case CAMERA_CMD_TYPE_STOP_DATA_PROC:
             CDBG_HIGH("%s: stop data proc", __func__);
-            is_active = FALSE;
             // signal cmd is completed
             cam_sem_post(&cmdThread->sync_sem);
             break;
diff --git a/camera/QCamera2/HAL3/QCamera3Channel.cpp b/camera/QCamera2/HAL3/QCamera3Channel.cpp
index 63bc787..6b09df9 100644
--- a/camera/QCamera2/HAL3/QCamera3Channel.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Channel.cpp
@@ -761,7 +761,6 @@
     ATRACE_CALL();
     int rc = 0;
     mIsType = isType;
-    cam_stream_type_t streamType;
 
     if ((uint32_t)mMemory.getCnt() > (mNumBufs - 1)) {
         ALOGE("%s: Trying to register more buffers than initially requested",
@@ -778,7 +777,6 @@
         }
     }
 
-    streamType = mStreams[0]->getMyType();
     rc = mMemory.registerBuffer(buffer);
     if (ALREADY_EXISTS == rc) {
         return NO_ERROR;
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index d85743d..7d8e1d0 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -1442,15 +1442,10 @@
 int64_t QCamera3HardwareInterface::getMinFrameDuration(const camera3_capture_request_t *request)
 {
     bool hasJpegStream = false;
-    bool hasRawStream = false;
     for (uint32_t i = 0; i < request->num_output_buffers; i ++) {
         const camera3_stream_t *stream = request->output_buffers[i].stream;
         if (stream->format == HAL_PIXEL_FORMAT_BLOB)
             hasJpegStream = true;
-        else if (stream->format == HAL_PIXEL_FORMAT_RAW_OPAQUE ||
-                stream->format == HAL_PIXEL_FORMAT_RAW10 ||
-                stream->format == HAL_PIXEL_FORMAT_RAW16)
-            hasRawStream = true;
     }
 
     if (!hasJpegStream)
@@ -3137,6 +3132,11 @@
     if (IS_META_AVAILABLE(CAM_INTF_META_JPEG_THUMB_SIZE, metadata)) {
         cam_dimension_t *thumb_size = (cam_dimension_t *)POINTER_OF_META(
                 CAM_INTF_META_JPEG_THUMB_SIZE, metadata);
+        // Note: cam_dimension_t should have the right layout, but for safety just copy it.
+        int32_t thumbnail_size[2];
+        thumbnail_size[0] = thumb_size->width;
+        thumbnail_size[1] = thumb_size->height;
+        camMetadata.update(ANDROID_JPEG_THUMBNAIL_SIZE, thumbnail_size, 2);
     }
     if (IS_META_AVAILABLE(CAM_INTF_META_PRIVATE_DATA, metadata)) {
         int32_t *privateData = (int32_t *)
@@ -3515,8 +3515,6 @@
                                                    const char *type,
                                                    uint32_t frameNumber)
 {
-    uint32_t frm_num = 0;
-
     //Some sanity checks
     if (meta.tuning_sensor_data_size > TUNING_SENSOR_DATA_MAX) {
         ALOGE("%s : Tuning sensor data size bigger than expected %d: %d",
@@ -6448,8 +6446,6 @@
         char gps_methods[GPS_PROCESSING_METHOD_SIZE];
         const char *gps_methods_src = (const char *)
                 frame_settings.find(ANDROID_JPEG_GPS_PROCESSING_METHOD).data.u8;
-        uint32_t count = frame_settings.find(
-                ANDROID_JPEG_GPS_PROCESSING_METHOD).count;
         memset(gps_methods, '\0', sizeof(gps_methods));
         strncpy(gps_methods, gps_methods_src, sizeof(gps_methods)-1);
         rc = AddSetParmEntryToBatch(hal_metadata, CAM_INTF_META_JPEG_GPS_PROC_METHODS, sizeof(gps_methods), gps_methods);
diff --git a/camera/QCamera2/HAL3/QCamera3PostProc.cpp b/camera/QCamera2/HAL3/QCamera3PostProc.cpp
index a56375f..272757a 100644
--- a/camera/QCamera2/HAL3/QCamera3PostProc.cpp
+++ b/camera/QCamera2/HAL3/QCamera3PostProc.cpp
@@ -260,7 +260,6 @@
         jpeg_settings_t *jpeg_settings)
 {
     CDBG("%s : E", __func__);
-    int32_t ret = NO_ERROR;
 
     if ((NULL == frame) || (NULL == jpeg_settings)) {
         return BAD_VALUE;
@@ -322,10 +321,6 @@
 
     CDBG("%s : X", __func__);
     return NO_ERROR;
-
-on_error:
-    CDBG("%s : X with error %d", __func__, ret);
-    return ret;
 }
 
 /*===========================================================================
@@ -464,7 +459,6 @@
  *==========================================================================*/
 int32_t QCamera3PostProcessor::processData(mm_camera_super_buf_t *frame)
 {
-    QCamera3HardwareInterface* hal_obj = (QCamera3HardwareInterface*)m_parent->mUserData;
     pthread_mutex_lock(&mReprocJobLock);
     // enqueue to post proc input queue
     m_inputPPQ.enqueue((void *)frame);
diff --git a/camera/QCamera2/stack/common/cam_types.h b/camera/QCamera2/stack/common/cam_types.h
index 617ad2c..dba930f 100644
--- a/camera/QCamera2/stack/common/cam_types.h
+++ b/camera/QCamera2/stack/common/cam_types.h
@@ -56,7 +56,6 @@
  *  dump the image to the file
  **/
 #define CAM_DUMP_TO_FILE(path, name, index, extn, p_addr, len) ({ \
-  int rc = 0; \
   char filename[CAM_FN_CNT]; \
   if (index >= 0) \
     snprintf(filename, CAM_FN_CNT-1, "%s/%s%d.%s", path, name, index, extn); \
@@ -64,7 +63,7 @@
     snprintf(filename, CAM_FN_CNT-1, "%s/%s.%s", path, name, extn); \
   FILE *fp = fopen(filename, "w+"); \
   if (fp) { \
-    rc = fwrite(p_addr, 1, len, fp); \
+    fwrite(p_addr, 1, len, fp); \
     ALOGE("%s:%d] written size %d", __func__, __LINE__, len); \
     fclose(fp); \
   } else { \
diff --git a/camera/QCamera2/stack/mm-camera-interface/Android.mk b/camera/QCamera2/stack/mm-camera-interface/Android.mk
index 194c5bf..37f55d1 100644
--- a/camera/QCamera2/stack/mm-camera-interface/Android.mk
+++ b/camera/QCamera2/stack/mm-camera-interface/Android.mk
@@ -4,6 +4,12 @@
 include $(LOCAL_PATH)/../../../common.mk
 include $(CLEAR_VARS)
 
+# cam_intf.c has type conversion discarding qualifiers.
+# mm_camera_interface.c has incomplete field initializer.
+LOCAL_CLANG_CFLAGS += \
+        -Wno-error=incompatible-pointer-types-discards-qualifiers \
+        -Wno-error=missing-field-initializers \
+
 MM_CAM_FILES := \
         src/mm_camera_interface.c \
         src/mm_camera.c \
@@ -46,7 +52,6 @@
 LOCAL_SRC_FILES := $(MM_CAM_FILES)
 
 LOCAL_MODULE           := libmmcamera_interface
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libdl libcutils liblog
 LOCAL_MODULE_TAGS := optional
 
diff --git a/camera/QCamera2/stack/mm-camera-test/Android.mk b/camera/QCamera2/stack/mm-camera-test/Android.mk
index 9d33c6e..b4c36e3 100644
--- a/camera/QCamera2/stack/mm-camera-test/Android.mk
+++ b/camera/QCamera2/stack/mm-camera-test/Android.mk
@@ -17,6 +17,10 @@
 
 LOCAL_CFLAGS += -D_ANDROID_
 
+# mm_qcamera_main_menu.c has implicit conversion from enum to enum.
+LOCAL_CLANG_CFLAGS += \
+        -Wno-error=enum-conversion \
+
 LOCAL_SRC_FILES:= \
         src/mm_qcamera_main_menu.c \
         src/mm_qcamera_app.c \
@@ -125,6 +129,10 @@
 
 LOCAL_CFLAGS += -D_ANDROID_
 
+# mm_qcamera_main_menu.c has implicit conversion from enum to enum.
+LOCAL_CLANG_CFLAGS += \
+        -Wno-error=enum-conversion \
+
 LOCAL_SRC_FILES:= \
         src/mm_qcamera_main_menu.c \
         src/mm_qcamera_app.c \
diff --git a/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_main_menu.c b/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_main_menu.c
index fd68f73..a276698 100644
--- a/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_main_menu.c
+++ b/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_main_menu.c
@@ -1664,7 +1664,6 @@
     menu_id_change_t current_menu_id = MENU_ID_MAIN, next_menu_id;
     camera_action_t action_id;
     int action_param;
-    uint8_t previewing = 0;
     int isZSL = 0;
     uint8_t wnr_enabled = 0;
     mm_camera_lib_handle lib_handle;
@@ -1749,7 +1748,6 @@
                     CDBG_ERROR("%s:mm_camera_lib_start_stream() err=%d\n", __func__, rc);
                     goto ERROR;
                 }
-                previewing = 1;
                 break;
 
             case ACTION_STOP_PREVIEW:
@@ -1759,7 +1757,6 @@
                     CDBG_ERROR("%s:mm_camera_lib_stop_stream() err=%d\n", __func__, rc);
                     goto ERROR;
                 }
-                previewing = 0;
                 break;
 
             case ACTION_SET_WHITE_BALANCE:
diff --git a/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_snapshot.c b/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_snapshot.c
index 0f5e4dd..fbd50fa 100644
--- a/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_snapshot.c
+++ b/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_snapshot.c
@@ -252,7 +252,6 @@
                                           void *user_data)
 {
 
-    int rc;
     int i = 0;
     mm_camera_test_obj_t *pme = (mm_camera_test_obj_t *)user_data;
     mm_camera_channel_t *channel = NULL;
@@ -270,7 +269,6 @@
     }
     if (NULL == channel) {
         CDBG_ERROR("%s: Wrong channel id (%d)", __func__, bufs->ch_id);
-        rc = -1;
         goto EXIT;
     }
 
@@ -283,7 +281,6 @@
     }
     if (NULL == m_stream) {
         CDBG_ERROR("%s: cannot find snapshot stream", __func__);
-        rc = -1;
         goto EXIT;
     }
 
@@ -296,7 +293,6 @@
     }
     if (NULL == m_frame) {
         CDBG_ERROR("%s: main frame is NULL", __func__);
-        rc = -1;
         goto EXIT;
     }
 
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/Android.mk b/camera/QCamera2/stack/mm-jpeg-interface/Android.mk
index 6fc29fa..127df87 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/Android.mk
+++ b/camera/QCamera2/stack/mm-jpeg-interface/Android.mk
@@ -42,7 +42,6 @@
     src/mm_jpegdec.c
 
 LOCAL_MODULE           := libmmjpeg_interface
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libdl libcutils liblog libqomx_core
 LOCAL_MODULE_TAGS := optional
 
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk b/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk
index 5e4c8e0..decb74c 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk
+++ b/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk
@@ -32,7 +32,6 @@
 
 LOCAL_32_BIT_ONLY := true
 LOCAL_MODULE           := mm-jpeg-interface-test
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libcutils libdl libmmjpeg_interface
 
 include $(BUILD_EXECUTABLE)
@@ -70,7 +69,6 @@
 
 LOCAL_32_BIT_ONLY := true
 LOCAL_MODULE           := mm-jpegdec-interface-test
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libcutils libdl libmmjpeg_interface
 
 include $(BUILD_EXECUTABLE)
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c
index 8533978..97ac22c 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c
+++ b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c
@@ -42,10 +42,9 @@
  *  dump the image to the file
  **/
 #define DUMP_TO_FILE(filename, p_addr, len) ({ \
-  int rc = 0; \
   FILE *fp = fopen(filename, "w+"); \
   if (fp) { \
-    rc = fwrite(p_addr, 1, len, fp); \
+    fwrite(p_addr, 1, len, fp); \
     fclose(fp); \
   } else { \
     CDBG_ERROR("%s:%d] cannot dump image", __func__, __LINE__); \
@@ -220,7 +219,6 @@
 
 int mm_jpeg_test_read(mm_jpeg_intf_test_t *p_obj, int idx)
 {
-  int rc = 0;
   FILE *fp = NULL;
   int file_size = 0;
   fp = fopen(p_obj->filename[idx], "rb");
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpegdec_test.c b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpegdec_test.c
index 46ba7ec..982b9cd 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpegdec_test.c
+++ b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpegdec_test.c
@@ -34,7 +34,7 @@
 
 #define MIN(a,b)  (((a) < (b)) ? (a) : (b))
 #define MAX(a,b)  (((a) > (b)) ? (a) : (b))
-#define CLAMP(x, min, max) MIN(MAX((x), (min)), (max))
+#define CLAMP(x, min, max) x = MIN(MAX((x), (min)), (max))
 
 #define TIME_IN_US(r) ((uint64_t)r.tv_sec * 1000000LL + r.tv_usec)
 struct timeval dtime[2];
@@ -48,10 +48,9 @@
  *  dump the image to the file
  **/
 #define DUMP_TO_FILE(filename, p_addr, len) ({ \
-  int rc = 0; \
   FILE *fp = fopen(filename, "w+"); \
   if (fp) { \
-    rc = fwrite(p_addr, 1, len, fp); \
+    fwrite(p_addr, 1, len, fp); \
     fclose(fp); \
   } else { \
     CDBG_ERROR("%s:%d] cannot dump image", __func__, __LINE__); \
@@ -68,11 +67,6 @@
   int format;
 } jpeg_test_input_t;
 
-static jpeg_test_input_t jpeg_input[] = {
-  {"/data/test.jpg", 5248, 3936, "/data/test.yuv",
-      MM_JPEG_COLOR_FORMAT_YCBCRLP_H2V2}
-};
-
 typedef struct {
   char *filename;
   int width;
diff --git a/camera/mm-image-codec/qomx_core/Android.mk b/camera/mm-image-codec/qomx_core/Android.mk
index 4d4e39c..02f3ff8 100644
--- a/camera/mm-image-codec/qomx_core/Android.mk
+++ b/camera/mm-image-codec/qomx_core/Android.mk
@@ -21,7 +21,6 @@
 LOCAL_SRC_FILES := qomx_core.c
 
 LOCAL_MODULE           := libqomx_core
-LOCAL_PRELINK_MODULE   := false
 LOCAL_SHARED_LIBRARIES := libcutils libdl
 
 LOCAL_32_BIT_ONLY := true
diff --git a/camera/mm-image-codec/qomx_core/qomx_core.c b/camera/mm-image-codec/qomx_core/qomx_core.c
index 5336f55..41d11e0 100644
--- a/camera/mm-image-codec/qomx_core/qomx_core.c
+++ b/camera/mm-image-codec/qomx_core/qomx_core.c
@@ -177,7 +177,6 @@
 {
   OMX_ERRORTYPE rc = OMX_ErrorNone;
   int comp_idx = 0, inst_idx = 0;
-  char libName[BUFF_SIZE] = {0};
   void *p_obj = NULL;
   OMX_COMPONENTTYPE *p_comp = NULL;
   omx_core_component_t *p_core_comp = NULL;
diff --git a/dataservices/rmnetctl/src/Android.mk b/dataservices/rmnetctl/src/Android.mk
index 03850a5..2f0c973 100644
--- a/dataservices/rmnetctl/src/Android.mk
+++ b/dataservices/rmnetctl/src/Android.mk
@@ -13,6 +13,5 @@
 
 LOCAL_MODULE := librmnetctl
 LOCAL_MODULE_TAGS := optional
-LOCAL_PRELINK_MODULE := false
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 97f4244..99411c3 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -45,6 +45,12 @@
 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3  u:object_r:efs_block_device:s0
 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefsc  u:object_r:efs_block_device:s0
 
+/dev/block/platform/msm_sdcc\.1/by-name/system       u:object_r:system_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/recovery     u:object_r:recovery_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/userdata     u:object_r:userdata_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/metadata     u:object_r:metadata_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/cache        u:object_r:cache_block_device:s0
+
 # Customer Identifier
 /dev/block/platform/msm_sdcc.1/by-name/cid          u:object_r:cid_block_device:s0
 
diff --git a/sepolicy/rild.te b/sepolicy/rild.te
index 69069ae..00f32f8 100644
--- a/sepolicy/rild.te
+++ b/sepolicy/rild.te
@@ -26,3 +26,5 @@
 # Allow permissions for FSG
 allow rild fsg_file:dir search;
 allow rild fsg_file:file r_file_perms;
+
+allow rild mediaserver_service:service_manager find;
