diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 139cedc..bb4983b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,6 +21,8 @@
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
+    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
     <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
     <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
@@ -48,12 +50,12 @@
     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
 
     <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
+    <uses-permission android:name="android.permission.ACCESS_PDB_STATE" />
 
     <application
         android:allowClearUserData="false"
         android:hardwareAccelerated="true"
-        android:label="@string/app_name"
-        android:theme="@style/SetupWorkSpaceTheme">
+        android:label="@string/app_name">
 
         <!--
              Note: Setup activities are android:immersive to prevent full-screen notifications (USB
@@ -65,44 +67,58 @@
             android:excludeFromRecents="true"
             android:immersive="true"
             android:launchMode="singleTop"
-            android:screenOrientation="nosensor">
-            <intent-filter>
+            android:theme="@style/SetupWorkSpaceTheme">
+            <intent-filter android:priority="10">
                 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:mimeType="application/com.android.managedprovisioning" />
             </intent-filter>
             <!-- Do not change the following action. -->
-            <intent-filter>
+            <intent-filter android:priority="10">
                 <action android:name="com.android.managedprovisioning.ACTION_PROVISION_MANAGED_DEVICE" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="ManagedProvisioningActivity"
+            android:name="ProfileOwnerPreProvisioningActivity"
             android:excludeFromRecents="true"
             android:immersive="true"
             android:launchMode="singleTop"
-            android:screenOrientation="nosensor">
-            <intent-filter>
-                <action android:name="android.app.action.ACTION_PROVISION_MANAGED_PROFILE" />
+            android:theme="@style/SetupWorkSpaceTheme">
+            <intent-filter android:priority="10">
+                <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="UserConsentActivity"
+            android:name="ProfileOwnerProvisioningActivity"
+            android:excludeFromRecents="true"
             android:immersive="true"
             android:launchMode="singleTop"
-            android:screenOrientation="nosensor" >
+            android:theme="@style/SetupWorkSpaceTheme">
         </activity>
+        <activity-alias
+            android:name="ProfileOwnerProvisioningActivityNoCallerCheck"
+            android:targetActivity="ProfileOwnerPreProvisioningActivity"
+            android:permission="android.permission.MANAGE_USERS"
+            android:exported="true">
+        </activity-alias>
         <activity
             android:name="EncryptDeviceActivity"
             android:immersive="true"
             android:launchMode="singleTop"
-            android:screenOrientation="nosensor" >
+            android:theme="@style/SetupWorkSpaceTheme">
+        </activity>
+
+        <activity
+            android:name="WebActivity"
+            android:immersive="true"
+            android:launchMode="singleTop"
+            android:theme="@style/SetupWorkSpaceTheme">
         </activity>
 
         <service
-            android:name="ManagedProvisioningService" >
+            android:name="ProfileOwnerProvisioningService" >
         </service>
         <service
             android:name="DeviceOwnerProvisioningService" >
@@ -111,15 +127,26 @@
         <receiver android:name="com.android.managedprovisioning.BootReminder">
             <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
-                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
             </intent-filter>
         </receiver>
 
-        <receiver android:name="com.android.managedprovisioning.CrossProfileIntentFiltersHelper$FiltersReseter">
+        <receiver android:name="com.android.managedprovisioning.PreBootListener">
             <intent-filter>
                 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
             </intent-filter>
         </receiver>
 
+        <activity android:name="com.android.managedprovisioning.HomeReceiverActivity"
+                  android:theme="@android:style/Theme.NoDisplay"
+                  android:noHistory="true"
+                  android:excludeFromRecents="true"
+                  android:enabled="false">
+            <intent-filter android:priority="2">
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.HOME" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
     </application>
 </manifest>
diff --git a/res/color/colored_button.xml b/res/color/colored_button.xml
new file mode 100644
index 0000000..ee4727a
--- /dev/null
+++ b/res/color/colored_button.xml
@@ -0,0 +1,23 @@
+<?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.
+ */
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/light_gray"/>
+    <item android:color="@color/accent"/>
+</selector>
\ No newline at end of file
diff --git a/res/drawable-hdpi/setup_illustration.png b/res/drawable-hdpi/setup_illustration.png
index 8a272b8..4742b78 100644
--- a/res/drawable-hdpi/setup_illustration.png
+++ b/res/drawable-hdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-hdpi/setup_illustration_tile.png b/res/drawable-hdpi/setup_illustration_tile.png
new file mode 100644
index 0000000..a1b5810
--- /dev/null
+++ b/res/drawable-hdpi/setup_illustration_tile.png
Binary files differ
diff --git a/res/drawable-large-hdpi/setup_illustration.png b/res/drawable-large-hdpi/setup_illustration.png
new file mode 100644
index 0000000..67010c6
--- /dev/null
+++ b/res/drawable-large-hdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-large-mdpi/setup_illustration.png b/res/drawable-large-mdpi/setup_illustration.png
new file mode 100644
index 0000000..1d5d4be
--- /dev/null
+++ b/res/drawable-large-mdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-large-xhdpi/setup_illustration.png b/res/drawable-large-xhdpi/setup_illustration.png
new file mode 100644
index 0000000..13e4f23
--- /dev/null
+++ b/res/drawable-large-xhdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-large-xxhdpi/setup_illustration.png b/res/drawable-large-xxhdpi/setup_illustration.png
new file mode 100644
index 0000000..e7a31f6
--- /dev/null
+++ b/res/drawable-large-xxhdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-mdpi/setup_illustration.png b/res/drawable-mdpi/setup_illustration.png
index 4bf7781..6f6b3f0 100644
--- a/res/drawable-mdpi/setup_illustration.png
+++ b/res/drawable-mdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-mdpi/setup_illustration_tile.png b/res/drawable-mdpi/setup_illustration_tile.png
new file mode 100644
index 0000000..77943db
--- /dev/null
+++ b/res/drawable-mdpi/setup_illustration_tile.png
Binary files differ
diff --git a/res/drawable-xhdpi/setup_illustration.png b/res/drawable-xhdpi/setup_illustration.png
index e803bb2..aa7ce86 100644
--- a/res/drawable-xhdpi/setup_illustration.png
+++ b/res/drawable-xhdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-xhdpi/setup_illustration_tile.png b/res/drawable-xhdpi/setup_illustration_tile.png
new file mode 100644
index 0000000..18b9e08
--- /dev/null
+++ b/res/drawable-xhdpi/setup_illustration_tile.png
Binary files differ
diff --git a/res/drawable-xxhdpi/setup_illustration.png b/res/drawable-xxhdpi/setup_illustration.png
index 0ae8d17..19a1b07 100644
--- a/res/drawable-xxhdpi/setup_illustration.png
+++ b/res/drawable-xxhdpi/setup_illustration.png
Binary files differ
diff --git a/res/drawable-xxhdpi/setup_illustration_tile.png b/res/drawable-xxhdpi/setup_illustration_tile.png
new file mode 100644
index 0000000..ff6f19a
--- /dev/null
+++ b/res/drawable-xxhdpi/setup_illustration_tile.png
Binary files differ
diff --git a/res/drawable/setup_illustration.png b/res/drawable/setup_illustration.png
deleted file mode 100644
index 4bf7781..0000000
--- a/res/drawable/setup_illustration.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/setup_illustration_right.xml b/res/drawable/setup_illustration_right.xml
new file mode 100644
index 0000000..d957f71
--- /dev/null
+++ b/res/drawable/setup_illustration_right.xml
@@ -0,0 +1,21 @@
+<?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.
+ */
+-->
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+        android:src="@drawable/setup_illustration_tile"
+        android:tileMode="repeat" />
\ No newline at end of file
diff --git a/res/layout-land/header_and_title.xml b/res/layout-land/header_and_title.xml
new file mode 100644
index 0000000..8183841
--- /dev/null
+++ b/res/layout-land/header_and_title.xml
@@ -0,0 +1,27 @@
+<?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.
+ */
+-->
+<!-- Background that shows the header and title -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/HeaderAndTitleContainer">
+    <TextView
+        android:id="@+id/title"
+        android:text="@string/setup_work_space"
+        style="@style/Title"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-large-land/encrypt_device.xml b/res/layout-large-land/encrypt_device.xml
new file mode 100644
index 0000000..392c786
--- /dev/null
+++ b/res/layout-large-land/encrypt_device.xml
@@ -0,0 +1,41 @@
+<?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.
+ */
+-->
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <include layout="@layout/header_and_title"
+        android:layout_height="fill_parent"
+        android:layout_width="fill_parent"/>
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:layout_marginTop="@dimen/main_text_margin">
+        <Space
+            android:layout_weight="6"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+        <include layout="@layout/encrypt_device_main_text"
+            android:layout_weight="8"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+        <Space
+            android:layout_weight="2"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+    </LinearLayout>
+</RelativeLayout>
diff --git a/res/layout-large-land/header_and_title.xml b/res/layout-large-land/header_and_title.xml
new file mode 100644
index 0000000..6c01a22
--- /dev/null
+++ b/res/layout-large-land/header_and_title.xml
@@ -0,0 +1,47 @@
+<?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.
+ */
+-->
+<!-- Background that shows the header and title -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/HeaderAndTitleContainer">
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content">
+        <ImageView
+            android:id="@+id/header"
+            style="@style/HeaderImage"/>
+        <ImageView
+            style="@style/HeaderImageTile"/>
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:id="@+id/title"
+            android:text="@string/setup_work_space"
+            android:layout_weight="6"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            style="@style/Title"/>
+        <Space
+            android:layout_weight="10"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-large-land/progress.xml b/res/layout-large-land/progress.xml
new file mode 100644
index 0000000..316e0fd
--- /dev/null
+++ b/res/layout-large-land/progress.xml
@@ -0,0 +1,50 @@
+<?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.
+ */
+-->
+
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <include layout="@layout/header_and_title"
+        android:layout_height="fill_parent"
+        android:layout_width="fill_parent"/>
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:layout_marginTop="@dimen/main_text_margin">
+        <Space
+            android:layout_weight="6"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+        <LinearLayout
+            style="@style/MainTextContainer"
+            android:layout_weight="8"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent">
+            <ProgressBar
+                style="@style/ProgressBar"/>
+            <TextView
+                android:id="@+id/prog_text"
+                android:gravity="center_horizontal"
+                style="@style/MainText"/>
+        </LinearLayout>
+        <Space
+            android:layout_weight="2"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+    </LinearLayout>
+</RelativeLayout>
diff --git a/res/layout-large-land/user_consent.xml b/res/layout-large-land/user_consent.xml
new file mode 100644
index 0000000..b3d7c43
--- /dev/null
+++ b/res/layout-large-land/user_consent.xml
@@ -0,0 +1,41 @@
+<?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.
+ */
+-->
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <include layout="@layout/header_and_title"
+        android:layout_height="fill_parent"
+        android:layout_width="fill_parent"/>
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:layout_marginTop="@dimen/main_text_margin">
+        <Space
+            android:layout_weight="6"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+        <include layout="@layout/user_consent_main_text"
+            android:layout_weight="8"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+        <Space
+            android:layout_weight="2"
+            android:layout_width="0dp"
+            android:layout_height="fill_parent"/>
+    </LinearLayout>
+</RelativeLayout>
diff --git a/res/layout-large/header_and_title.xml b/res/layout-large/header_and_title.xml
new file mode 100644
index 0000000..9db9c1c
--- /dev/null
+++ b/res/layout-large/header_and_title.xml
@@ -0,0 +1,36 @@
+<?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.
+ */
+-->
+<!-- Background that shows the header and title -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/HeaderAndTitleContainer">
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content">
+        <ImageView
+            android:id="@+id/header"
+            style="@style/HeaderImage"/>
+        <ImageView
+            style="@style/HeaderImageTile"/>
+    </LinearLayout>
+    <TextView
+        android:id="@+id/title"
+        android:text="@string/setup_work_space"
+        style="@style/Title"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/encrypt_device.xml b/res/layout/encrypt_device.xml
index b104721..9493ce3 100644
--- a/res/layout/encrypt_device.xml
+++ b/res/layout/encrypt_device.xml
@@ -18,46 +18,7 @@
 -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical">
-    <ImageView
-        style="@style/SetupWorkSpaceHeader"/>
-    <TextView
-        style="@style/SetupWorkSpaceTitle"/>
-    <ScrollView
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1"
-        android:fillViewport="true"
-        android:orientation="vertical">
-        <LinearLayout
-            style="@style/SetupWorkSpaceTextContainer">
-            <TextView
-                android:text="@string/encrypt_device_text"
-                style="@style/SetupWorkSpaceMainText"/>
-            <View
-                android:layout_width="fill_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1" />
-            <RelativeLayout
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center">
-                <Button
-                    android:id="@+id/cancel_button"
-                    android:layout_alignParentLeft="true"
-                    android:layout_centerVertical="true"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/encrypt_device_cancel"/>
-                <Button
-                    android:id="@+id/accept_button"
-                    android:layout_alignParentRight="true"
-                    android:layout_centerVertical="true"
-                    android:text="@string/encrypt_device_launch_settings"
-                    style="@style/SetupButton"/>
-            </RelativeLayout>
-        </LinearLayout>
-    </ScrollView>
+    style="@style/Container" >
+    <include layout="@layout/header_and_title"/>
+    <include layout="@layout/encrypt_device_main_text"/>
 </LinearLayout>
diff --git a/res/layout/encrypt_device_main_text.xml b/res/layout/encrypt_device_main_text.xml
new file mode 100644
index 0000000..491d326
--- /dev/null
+++ b/res/layout/encrypt_device_main_text.xml
@@ -0,0 +1,50 @@
+<?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.
+ */
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/MainTextContainer" >
+    <ScrollView
+        android:layout_weight="1"
+        android:layout_height="0dp"
+        style="@style/ScrollView">
+        <LinearLayout
+            android:layout_height="wrap_content"
+            android:layout_width="fill_parent"
+            android:orientation="vertical">
+            <TextView
+                android:text="@string/encrypt_device_text"
+                style="@style/MainText"/>
+        </LinearLayout>
+    </ScrollView>
+    <RelativeLayout
+        android:layout_width="fill_parent"
+        android:layout_height="@dimen/row_height"
+        android:paddingTop="@dimen/row_padding_top">
+        <Button
+            android:id="@+id/cancel_button"
+            android:layout_alignParentLeft="true"
+            android:text="@string/encrypt_device_cancel"
+            style="@style/LightButton"/>
+        <Button
+            android:id="@+id/accept_button"
+            android:layout_alignParentRight="true"
+            android:text="@string/encrypt_device_launch_settings"
+            style="@style/ColoredButton" />
+    </RelativeLayout>
+</LinearLayout>
diff --git a/res/layout/header_and_title.xml b/res/layout/header_and_title.xml
new file mode 100644
index 0000000..c6facb6
--- /dev/null
+++ b/res/layout/header_and_title.xml
@@ -0,0 +1,34 @@
+<?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.
+ */
+-->
+<!-- Background that shows the header and title -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/HeaderAndTitleContainer">
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content">
+        <ImageView
+            android:id="@+id/header"
+            style="@style/HeaderImage"/>
+    </LinearLayout>
+    <TextView
+        android:id="@+id/title"
+        android:text="@string/setup_work_space"
+        style="@style/Title"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/learn_more_dialog.xml b/res/layout/learn_more_dialog.xml
new file mode 100644
index 0000000..f8d5676
--- /dev/null
+++ b/res/layout/learn_more_dialog.xml
@@ -0,0 +1,74 @@
+<?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.
+ */
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/DialogFragmentTextContainer">
+
+    <ScrollView
+        android:layout_weight="1"
+        android:layout_height="0dp"
+        style="@style/ScrollView">
+
+        <LinearLayout
+            android:layout_height="wrap_content"
+            android:layout_width="fill_parent"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/learn_more_text1"
+                style="@style/MainText"/>
+
+            <TextView
+                android:id="@+id/learn_more_text2"
+                android:text="@string/contact_your_admin_for_more_info"
+                style="@style/MainText"/>
+
+            <TextView
+                android:id="@+id/learn_more_link"
+                android:textColor="@color/colored_button"
+                android:text="@string/learn_more_link"
+                style="@style/MainText"/>
+
+        </LinearLayout>
+
+    </ScrollView>
+
+    <RelativeLayout
+        android:layout_width="fill_parent"
+        android:layout_height="@dimen/row_height"
+        android:paddingTop="@dimen/row_padding_top">
+
+        <Button
+            android:id="@+id/positive_button"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentBottom="true"
+            android:text="@string/ok_setup"
+            android:textColor="@color/colored_button"
+            style="@style/TransparentButton" />
+
+        <Button
+            android:id="@+id/negative_button"
+            android:layout_alignParentBottom="true"
+            android:layout_toLeftOf="@id/positive_button"
+            android:text="@string/cancel_setup"
+            style="@style/TransparentButton" />
+
+    </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/progress.xml b/res/layout/progress.xml
index 966e5ed..34d25e3 100644
--- a/res/layout/progress.xml
+++ b/res/layout/progress.xml
@@ -18,24 +18,15 @@
 -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical">
-    <ImageView
-        style="@style/SetupWorkSpaceHeader"/>
-    <TextView
-        android:id="@+id/title"
-        style="@style/SetupWorkSpaceTitle"/>
+    style="@style/Container" >
+    <include layout="@layout/header_and_title"/>
     <LinearLayout
-        style="@style/SetupWorkSpaceTextContainer">
+        style="@style/MainTextContainer">
         <ProgressBar
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:indeterminate="true"
-            android:paddingTop="24dp"/>
+            style="@style/ProgressBar"/>
         <TextView
             android:id="@+id/prog_text"
             android:gravity="center_horizontal"
-            style="@style/SetupWorkSpaceMainText"/>
+            style="@style/MainText"/>
     </LinearLayout>
 </LinearLayout>
diff --git a/res/layout/user_consent.xml b/res/layout/user_consent.xml
index 79bfd46..2ccdfa5 100644
--- a/res/layout/user_consent.xml
+++ b/res/layout/user_consent.xml
@@ -18,79 +18,7 @@
 -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical">
-    <ImageView
-        style="@style/SetupWorkSpaceHeader"/>
-    <TextView
-        style="@style/SetupWorkSpaceTitle"/>
-
-    <!-- Progress indicator that replaces main view during provisioning. -->
-    <LinearLayout
-        android:id="@+id/progress_container"
-        style="@style/SetupWorkSpaceTextContainer"
-        android:layout_height="700dp"
-        android:visibility="gone" >
-    <TextView
-        android:text="@string/setting_up_workspace"
-        style="@style/SetupWorkSpaceMainText"/>
-    <ProgressBar
-        style="?android:style/Widget.ProgressBar.Small"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="50dp"
-        android:indeterminate="true"/>
-    </LinearLayout>
-
-    <!-- Main view -->
-    <LinearLayout
-        android:id="@+id/main_text_container"
-        style="@style/SetupWorkSpaceTextContainer">
-        <TextView
-            android:text="@string/separate_work_spaces"
-            style="@style/SetupWorkSpaceMainText"/>
-        <TextView
-            android:text="@string/company_controls_workspace"
-            style="@style/SetupWorkSpaceMainText"/>
-
-        <LinearLayout
-            android:layout_width="fill_parent"
-            android:layout_height="72dp"
-            android:paddingTop="16dp"
-            android:orientation="horizontal">
-            <ImageView
-                android:id="@+id/mdm_icon_view"
-                android:layout_width="56dp"
-                android:layout_height="fill_parent"
-                android:scaleType="center"/>
-            <TextView
-                android:id="@+id/device_manager_name"
-                android:layout_width="wrap_content"
-                android:layout_height="fill_parent"
-                android:paddingLeft="16dp"
-                android:gravity="center_vertical"
-                android:textSize="14sp"
-                android:textColor="@color/black"/>
-        </LinearLayout>
-
-        <!-- Button bar -->
-        <LinearLayout
-            android:layout_width="fill_parent"
-            android:layout_height="fill_parent"
-            android:layout_gravity="right"
-            android:orientation="horizontal">
-            <RelativeLayout
-                android:layout_width="fill_parent"
-                android:layout_height="fill_parent">
-                <Button
-                    android:id="@+id/positive_button"
-                    android:layout_gravity="right"
-                    android:layout_alignParentRight="true"
-                    android:layout_alignParentBottom="true"
-                    android:text="@string/set_up"
-                    style="@style/SetupButton"/>
-            </RelativeLayout>
-        </LinearLayout>
-    </LinearLayout>
+    style="@style/Container" >
+    <include layout="@layout/header_and_title"/>
+    <include layout="@layout/user_consent_main_text"/>
 </LinearLayout>
diff --git a/res/layout/user_consent_main_text.xml b/res/layout/user_consent_main_text.xml
new file mode 100644
index 0000000..2eebb41
--- /dev/null
+++ b/res/layout/user_consent_main_text.xml
@@ -0,0 +1,72 @@
+<?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.
+ */
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/main_text_container"
+    style="@style/MainTextContainer">
+    <ScrollView
+        android:layout_weight="1"
+        android:layout_height="0dp"
+        style="@style/ScrollView">
+        <LinearLayout
+            android:layout_height="wrap_content"
+            android:layout_width="fill_parent"
+            android:orientation="vertical">
+            <TextView
+                android:text="@string/company_controls_workspace"
+                style="@style/MainText"/>
+            <TextView
+                android:text="@string/the_following_is_your_mdm"
+                style="@style/MainText"/>
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="@dimen/row_height"
+                android:paddingTop="@dimen/row_padding_top"
+                android:layout_alignParentLeft="true"
+                android:layout_centerInParent="true"
+                android:layout_gravity="center_vertical">
+                <ImageView
+                    android:id="@+id/mdm_icon_view"
+                    android:layout_width="@dimen/icon_width_height"
+                    android:layout_height="@dimen/icon_width_height"
+                    android:scaleType="center"/>
+                <TextView
+                    android:id="@+id/device_manager_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="fill_parent"
+                    android:paddingLeft="@dimen/main_text_padding_left_right"
+                    android:gravity="center_vertical"
+                    android:textColor="@color/text_black"
+                    android:textSize="@dimen/main_text_size"/>
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
+    <RelativeLayout
+        android:layout_width="fill_parent"
+        android:layout_height="@dimen/row_height"
+        android:paddingTop="@dimen/row_padding_top">
+        <Button
+            android:id="@+id/positive_button"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentBottom="true"
+            android:text="@string/set_up"
+            style="@style/ColoredButton" />
+    </RelativeLayout>
+</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
new file mode 100644
index 0000000..847317a
--- /dev/null
+++ b/res/values-af/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Toestelopsteller"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oeps!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Stel jou profiel op"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Jou organisasie beheer hierdie profiel en hou dit veilig. Jy beheer alle ander goed op jou toestel."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Die volgende program sal toegang tot hierdie profiel moet hê:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Stel op"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Stel tans jou werkprofiel op …"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Jou administrateur het die vermoë om instellings, korporatiewe toegang, programme en data wat met die profiel geassosieer word, insluitend netwerkaktiwiteit en jou toestel se ligginginligting, te monitor en te bestuur."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Jou administrateur het die vermoë om instellings, korporatiewe toegang, programme en data wat met hierdie toestel geassosieer word, insluitend netwerkaktiwiteit en jou toestel se ligginginligting, te monitor en te bestuur."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Kontak jou administrateur vir meer inligting, insluitend jou organisasie se privaatheidbeleide."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Kom meer te wete"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Kanselleer"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Goed"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Werkprofiel"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Jy het reeds \'n werkprofiel op jou toestel. Wil jy dit te verwyder?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Is jy seker jy wil hierdie werkprofiel verwyder? Al sy data sal uitgevee word."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Verwyder"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Kanselleer"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Jy moet jou toestel enkripteer om voort te gaan om jou werkprofiel op te stel. Dit kan \'n ruk duur."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Kanselleer"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Enkripteer"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Enkripsie voltooi"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Raak om voort te gaan om jou werkprofiel op te stel"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Kon nie jou werkprofiel opstel nie. Kontak jou IT-afdeling of probeer later weer."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Jou toestel steun nie werkprofiele nie"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Werkprofiele moet deur die toesteleienaar opgestel word"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Hierdie lanseerderprogram steun nie jou werkprofiel nie. Jy moet oorskakel na \'n lanseerder wat versoenbaar is."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Kanselleer"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Gebruiker van werktoestel"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Stel jou toestel op"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Verwerk tans opstellingdata …"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Koppel tans aan Wi-Fi …"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Laai tans die administrasieprogram af …"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installeer tans die administrasieprogram …"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Stel tans die toesteleienaar …"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Hou op om op te stel?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Is jy seker jy wil stop om jou toestel se data op te stel en uit te vee?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Kanselleer"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Goed"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Stel terug"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Kon nie jou toestel opstel nie. Kontak jou IT-afdeling."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Hierdie toestel is reeds opgestel"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Kon nie aan Wi-Fi koppel nie"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Kon nie die administrasieprogram gebruik nie weens \'n checksum-fout. Kontak jou IT-afdeling."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Kon nie die administrasieprogram aflaai nie"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Kan nie die administrasieprogram gebruik nie. Komponente ontbreek of dit is korrup. Kontak jou IT-afdeling."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Kon nie die administrasieprogram installeer nie"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Die administrasieprogram is nie op jou toestel geïnstalleer nie"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Hou op om op te stel?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Is jy seker jy wil ophou om op te stel?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nee"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ja"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Kanselleer tans …"</string>
+</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
new file mode 100644
index 0000000..41a546c
--- /dev/null
+++ b/res/values-am/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"መሳሪያ አቅራቢ"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ውይ!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"የእርስዎን መገለጫ ያዋቅሩ"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"ድርጅትዎ ይህን መገለጫ ይቆጣጠራል፣ እና ደህንነቱን ይጠብቃል። መሣሪያዎ ላይ ያለውን የተቀረው ነገር እርስዎ ነዎት የሚቆጣጠሩት።"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"የሚከተለው መተግበሪያ ይህን መገለጫ መድረስ ያስፈልገዋል።"</string>
+    <string name="set_up" msgid="7012862095553564169">"ያዋቅሩ"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"የስራ መገለጫዎን በማዋቀር ላይ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"የእርስዎ አስተዳዳሪ የአውታረ መረብ እንቅስቃሴን እና የመሣሪያዎ የአካባቢ መረጃን ጨምሮ ከዚህ መሣሪያ ጋር የተጎዳኙ ቅንብሮችን፣ የድርጅት መዳረሻ፣ መተግበሪያዎችን እና ውሂብ የመከታተል እና የማቀናበር  ችሎታ አለው።"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"የእርስዎ አስተዳዳሪ የአውታረ መረብ እንቅስቃሴ እና የመሣሪያዎ አካባቢያዊ መረጃን ጨምሮ ከዚህ መሣሪያ ጋር የተጎዳኙ ቅንብሮችን፣ የኮርፖሬት መዳረሻ፣ መተግበሪያዎች፣ እና ውሂብ የመከታተል እና የማቀናበር ችሎታ አለው።"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"የድርጅትዎ ግላዊነት መመሪያዎችን ጨምሮ ተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"ተጨማሪ ለመረዳት"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"ይቅር"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"እሺ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"የስራ መገለጫ"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"የስራ መገለጫ አስቀድሞ በመሣሪያዎ ላይ አለ። ሊያስወግዱት ይፈልጋሉ?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"እርግጠኛ ነዎት ይህን የስራ መገለጫ ማስወገድ ይፈልጋሉ? ሁሉም ውሂቡ ይሰረዛል።"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"አስወግድ"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"ይቅር"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"የስራ መገለጫዎን ማዋቀር ለመቀጠል መሣሪያዎን ማመስጠር አለብዎት። ይሄ የተወሰነ ጊዜ ሊወስድ ይችላል።"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"ይቅር"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"አመስጥር"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"ማመስጠር ተጠናቅቋል"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"የስራ መገለጫዎን ማዋቀሩን ለመቀጠል ይንኩ"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"የስራ መገለጫዎን ማዋቀር አልተቻለም። የአይቲ መምሪያዎን ያነጋግሩ ወይም ቆይተው እንደገና ይሞክሩ።"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"መሣሪያዎ የስራ መገለጫዎችን አይደግፍም"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"የስራ መገለጫዎች በመሣሪያው ባለቤት ነው መዋቀር ያለባቸው"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"የስራ መገለጫዎ በዚህ የማስጀመሪያ መተግበሪያ ውስጥ የሚደገፍ አይደለም። ተኳኋኝ ወደሆነ ማስጀመሪያ መቀየር ይኖርብዎታል።"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"ይቅር"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"እሺ"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"የስራ መሣሪያ ተጠቃሚ"</string>
+    <string name="setup_device" msgid="6725265673245816366">"መሣሪያዎን ያዋቅሩ"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"የውቅር ውሂብ በመስራት ላይ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"ከWi-Fi ጋር በመገናኘት ላይ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"የአስተዳዳሪ መተግበሪያውን በማውረድ ላይ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"የአስተዳዳሪ መተግበሪያውን በመጫን ላይ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"የመሣሪያውን ባለቤት በማዋቀር ላይ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"ማዋቀር ይቁም?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"እርግጠኛ ነዎት ማዋቀር አቁመው የመሣሪያዎ ውሂብ መደምሰስ ይፈልጋሉ?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"ይቅር"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"እሺ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"ዳግም አስጀምር"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"መሣሪያዎን ማዋቀር አልተቻለም። የአይቲ መምሪያዎን ያነጋግሩ።"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ይህ መሣሪያ አስቀድሞ ተዋቅሯል"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"ከWi-Fi ጋር መገናኘት አልተቻለም"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"በማረጋገጫ ድምር ስህተት ምክንያት የአስተዳዳሪ መተግበሪያውን መጠቀም አልተቻለም። የአይቲ መምሪያዎን ያነጋግሩ።"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"የአስተዳዳሪ መተግበሪያውን ማውረድ አልተችላእም"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"የአስተዳዳሪ መተግበሪያውን መጠቀም አይቻልም። ክፍሎች ይጎድሉታል ወይም ተበላሽቷል። የአይቲ መምሪያዎን ያነጋግሩ።"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"የአስተዳዳሪ መተግበሪያውን መጫን አልተቻለም"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"የአስተዳዳር መተግበሪያው በመሣሪያዎ ላይ አልተጫነም"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"ማዋቀር ይቁም?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"እርግጠኛ ነዎት ማዋቀር ማቆም ይፈልጋሉ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"አይ"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"አዎ"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"በመሰረዝ ላይ..."</string>
+</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
new file mode 100644
index 0000000..ff3c98a
--- /dev/null
+++ b/res/values-ar/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"مدير الجهاز"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"عفوًا!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"إعداد الملف الشخصي"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"تتحكم منظمتك في هذا الملف الشخصي وتحافظ على أمانه. بينما تتحكم أنت في كل شيء آخر على جهازك."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"سيحتاج التطبيق التالي إلى الدخول إلى هذا الملف الشخصي:"</string>
+    <string name="set_up" msgid="7012862095553564169">"إعداد"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"جارٍ إعداد الملف الشخصي للعمل…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"يمتلك المشرف إمكانية مراقبة وإدارة كل من الإعدادات والدخول إلى المؤسسة والتطبيقات والبيانات المقترنة بالملف الشخصي، بما في ذلك أنشطة الشبكة ومعلومات موقع الجهاز."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"لدى المشرف إمكانية مراقبة وإدارة الإعدادات والدخول إلى المؤسسة والتطبيقات والبيانات المقترنة بهذا الجهاز، بما في ذلك أنشطة الشبكة ومعلومات موقع الجهاز."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"اتصل بالمشرف للحصول على مزيد من المعلومات، بما في ذلك سياسات الخصوصية الخاصة بمنظمتك."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"مزيد من المعلومات"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"إلغاء"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"موافق"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"الملف الشخصي للعمل"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"لديك فعلاً ملف شخصي للعمل على الجهاز. هل تريد إزالته؟"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"هل تريد بالتأكيد إزالة هذا الملف الشخصي للعمل؟ سيتم حذف جميع بياناته."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"إزالة"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"إلغاء"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"لمتابعة إعداد الملف الشخصي للعمل، يجب عليك تشفير الجهاز. قد يستغرق هذا بعض الوقت."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"إلغاء"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"تشفير"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"اكتمل التشفير"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"المس لمتابعة إعداد الملف الشخصي للعمل"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"تعذر إعداد ملف العمل. يمكنك الاتصال بقسم تكنولوجيا المعلومات أو إعادة المحاولة لاحقًا."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"جهازك ليس متوافقًا مع الملفات الشخصية للعمل"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"يجب أن يتم إعداد الملفات الشخصية للعمل بواسطة مالك الجهاز"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"لا يتوافق الملف الشخصي للعمل مع تطبيق المشغّل هذا. يجب عليك التبديل إلى تطبيق مشغّل متوافق."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"إلغاء"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"موافق"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"مستخدم جهاز العمل"</string>
+    <string name="setup_device" msgid="6725265673245816366">"إعداد الجهاز"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"جارٍ معالجة بيانات الإعداد…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"‏جارٍ الاتصال بشبكة Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"جارٍ تنزيل تطبيق المشرف…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"جارٍ تثبيت تطبيق المشرف…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"جارٍ تعيين مالك الجهاز..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"هل تريد إيقاف الإعداد؟"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"هل تريد بالتأكيد إيقاف الإعداد ومحو بيانات الجهاز؟"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"إلغاء"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"حسنًا"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"إعادة التعيين"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"تعذر إعداد الجهاز. يمكنك الاتصال بقسم تكنولوجيا المعلومات."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"سبق إعداد هذا الجهاز"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"‏تعذر الاتصال بـ Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"تعذر استخدام تطبيق المشرف بسبب خطأ في تدقيق المجموع. يمكنك الاتصال بقسم تكنولوجيا المعلومات."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"يتعذر تنزيل التطبيق الإداري"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"يتعذر استخدام تطبيق المشرف. بعض المكونات مفقودة أو تالفة. يمكنك الاتصال بقسم تكنولوجيا المعلومات."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"يتعذر تثبيت التطبيق الإداري"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"لم يتم تثبيت التطبيق الإداري على جهازك"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"هل تريد إيقاف الإعداد؟"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"هل تريد بالتأكيد إيقاف الإعداد؟"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"لا"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"نعم"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"جارٍ الإلغاء..."</string>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
new file mode 100644
index 0000000..7bbac2d
--- /dev/null
+++ b/res/values-bg/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ами сега!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Настройте потребителския си профил"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Организацията ви контролира този потребителски профил и се грижи за сигурността му. Вие управлявате всичко останало на устройството си."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Следното приложение ще трябва да има достъп до този потребителски профил:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Настройване"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Служебният ви потребителски профил се настройва..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Администраторът ви има възможност да наблюдава и управлява настройките, корпоративния достъп, приложенията и данните, свързани с потребителския профил, включително мрежовата активност и информацията за местоположението на устройството ви."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Администраторът ви има възможност да наблюдава и управлява настройките, корпоративния достъп, приложенията и данните, свързани с това устройство, включително мрежовата активност и информацията за местоположението му."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Свържете се с администратора си за още информация, включително относно правилата за поверителност на организацията си."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Научете повече"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Отказ"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ОK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Служебен потребителски профил"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Вече имате служебен потребителски профил на устройството си. Искате ли да го премахнете?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Наистина ли искате да премахнете този служебен потребителски профил? Всичките му данни ще бъдат изтрити."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Премахване"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Отказ"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"За да продължите с настройването на служебния си потребителски профил, трябва да шифровате устройството си. Това може да отнеме известно време."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Отказ"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Шифроване"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифроването завърши"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Докоснете, за да продължите с настройването на служебния си потребителски профил"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Служебният ви потребителски профил не можа да се настрои. Свържете се с отдела си за информационни технологии или опитайте отново по-късно."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Устройството ви не поддържа служебни потребителски профили"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Служебните потребителски профили трябва да бъдат настроени от собственика на устройството"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Служебният ви потребителски профил не се поддържа от това приложение за стартов панел. Трябва да превключите към съвместим панел."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Отказ"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Потребител на служебното устройство"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Настройване на устройството ви"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Данните за настройването се обработват..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Установява се връзка с Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Приложението за администриране се изтегля..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Прилож. за администриране се инсталира..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Собственикът на устройството се задава..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Да се спре ли настройването?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Наистина ли искате да спрете настройването и да изтриете данните на устройството си?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Отказ"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ОK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Нулиране"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Устройството ви не можа да се настрои. Свържете се с отдела си за информационни технологии."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Това устройство вече е настроено"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Не можа да се установи връзка с Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Приложението за администриране не можа да се използва поради грешка в контролната сума. Свържете се с отдела си за информационни технологии."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Приложението за администриране не можа да се изтегли"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Приложението за администриране не може да се използва. В него липсват компоненти или то е повредено. Свържете се с отдела си за информационни технологии."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Приложението за администриране не можа да се инсталира"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Приложението за администриране не е инсталирано на устройството ви"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Да се спре ли настройването?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Наистина ли искате да спрете настройването?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Не"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Да"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Анулира се..."</string>
+</resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
new file mode 100644
index 0000000..9c29940
--- /dev/null
+++ b/res/values-bn-rBD/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"ডিভাইস প্রভিশনার"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ওহো!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"আপনার প্রোফাইল সেট আপ করুন"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"আপনার প্রতিষ্ঠান এই প্রোফাইল নিয়ন্ত্রণ করে এবং একে সুরক্ষিত রাখে। আপনি আপনার ডিভাইসের বাকি সব কিছু নিয়ন্ত্রণ করেন।"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"নিম্নোল্লিখিত অ্যাপ্লিকেশানটিকে এই প্রোফাইলটি অ্যাক্সেস করতে হবে:"</string>
+    <string name="set_up" msgid="7012862095553564169">"সেট আপ"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"আপনার কর্মস্থলের প্রোফাইল সেট আপ হচ্ছে..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"আপনার প্রশাসক নেটওয়ার্ক কার্যকলাপ ও আপনার ডিভাইসের অবস্থান সম্পর্কিত তথ্য সহ প্রোফাইলটির সাথে সম্পর্কিত সেটিংস, কর্পোরেট অ্যাক্সেস, অ্যাপ্লিকেশান এবং ডেটা নিরীক্ষণ ও পরিচালনা করতে সক্ষম৷"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"আপনার প্রশাসক নেটওয়ার্ক কার্যকলাপ এবং আপনার ডিভাইসের অবস্থান সম্পর্কিত তথ্য সহ এই ডিভাইসের সাথে সম্পর্কিত সেটিংস, কর্পোরেট অ্যাক্সেস, অ্যাপ্লিকেশান এবং ডেটা নিরীক্ষণ ও পরিচালনা করতে সক্ষম৷"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"আপনার প্রতিষ্ঠানের গোপনীয়তা নীতি সহ আরো তথ্যের জন্য আপনার প্রশাসকের সাথে যোগাযোগ করুন।"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"আরো জানুন"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"বাতিল করুন"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ঠিক আছে"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"কর্মস্থলের প্রোফাইল"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"আপনার ডিভাইসে ইতিমধ্যে একটি কর্মস্থলের প্রফাইল আছে। আপনি কি এটি সরাতে চান?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"আপনি কি নিশ্চিত আপনি কর্মস্থলের প্রফাইল সরাতে চান ? এর সব ডেটা মুছে ফেলা হবে।"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"সরান"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"বাতিল করুন"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"সেট আপ অবিরত রাখতে, আপনাকে আপনার ডিভাইস এনক্রিপ্ট করতে হবে। এর জন্য কিছুক্ষণ সময় লাগবে।"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"বাতিল করুন"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"এনক্রিপ্ট করুন"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"এনক্রিপশন সম্পূর্ণ"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"আপনার কর্মস্থলের প্রোফাইল সেট আপ করা অব্যাহত রাখতে স্পর্শ করুন।"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"আপনার কর্মস্থলের প্রোফাইলটি সেটআপ করা যায়নি। আপনার IT বিভাগের সাথে যোগাযোগ করুন অথবা পরে আবার চেষ্টা করুন।"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"আপনার ডিভাইস কর্মস্থলের প্রোফাইলগুলি সমর্থন করে না"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"কর্মস্থলের প্রোফাইলটি ডিভাইসের ব্যবহারকারী মালিকের দ্বারা সেট আপ করতে হবে"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"আপনার কর্মস্থলের প্রোফাইল এই লঞ্চার অ্যাপ্লিকেশান দ্বারা সমর্থিত নয়। আপনাকে একটি সামঞ্জস্যপূর্ণ লঞ্চারে যেতে হবে।"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"বাতিল করুন"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ঠিক আছে"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"কর্মস্থলের ডিভাইসের ব্যবহারকারী"</string>
+    <string name="setup_device" msgid="6725265673245816366">"আপনার ডিভাইস সেট আপ করুন"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"সেটআপ ডেটা প্রক্রিয়াকৃত হচ্ছে..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi এ সংযুক্ত হচ্ছে..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"প্রশাসক অ্যাপ্লিকেশান ডাউনলোড হচ্ছে..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"প্রশাসক অ্যাপ্লিকেশান ইনস্টল হচ্ছে..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"ডিভাইসের মালিক সেট করা হচ্ছে..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"সেট আপ করা বন্ধ করবেন?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"আপনি কি নিশ্চিত আপনি আপনার ডিভাইস সেট আপ করা বন্ধ করতে চান ও এর ডেটা সাফ করে ফেলতে চান?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"বাতিল করুন"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ঠিক আছে"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"পুনরায় সেট করুন"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"আপনার ডিভাইস সেট আপ করা যায়নি। আপনার IT বিভাগের সাথে যোগাযোগ করুন।"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"এই ডিভাইসটি ইতিমধ্যে সেট আপ হয়ে আছে"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi এর সাথে সংযুক্ত করা যায়নি"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"একটি চেকসাম ত্রুটির কারণে প্রশাসক অ্যাপ্লিকেশান ব্যবহার করা যায়নি। আপনার IT বিভাগের সাথে যোগাযোগ করুন।"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"প্রশাসক অ্যাপ্লিকেশানটি ডাউনলোড করা যায়নি"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"প্রশাসক অ্যাপ্লিকেশান ব্যবহার করা যাচ্ছে না। এতে কিছু উপাদান অনুপস্থিত আছে বা এটি ক্ষতিগ্রস্ত হয়েছে। আপনার IT বিভাগের সাথে যোগাযোগ করুন।"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"প্রশাসক অ্যাপ্লিকেশান ইনস্টল করা যায়নি।"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"আপনার ডিভাইসে প্রশাসক অ্যাপ্লিকেশানটি ইনস্টল করা নেই"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"সেটআপ করা বন্ধ করবেন?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"আপনি কি সেটআপ প্রক্রিয়া বন্ধ করার বিষয়ে নিশ্চিত?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"না"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"হ্যাঁ"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"বাতিল হচ্ছে..."</string>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
new file mode 100644
index 0000000..3a72f3e
--- /dev/null
+++ b/res/values-ca/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Administrador de dispositius"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Error"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configuració del perfil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"La teva organització controla aquest perfil i el manté protegit. L\'usuari controla la resta d\'elements del dispositiu."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Aquesta aplicació haurà d\'accedir al perfil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configura"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"S\'està configurant el perfil professional..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"L\'administrador pot supervisar i gestionar la configuració, l\'accés corporatiu, les aplicacions i les dades associades amb el perfil, inclosa l\'activitat de xarxa i la informació d\'ubicació del dispositiu."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"L\'administrador pot supervisar i gestionar la configuració, l\'accés corporatiu, les aplicacions i les dades associades amb aquest dispositiu, inclosa l\'activitat de xarxa i la informació d\'ubicació del dispositiu."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contacta amb l\'administrador per obtenir més informació, incloses les polítiques de privadesa de la teva organització."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Més informació"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancel·la"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"D\'ACORD"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Perfil professional"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Ja tens un perfil professional al dispositiu. El vols suprimir?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Confirmes que vols suprimir aquest perfil professional? Totes les dades que contingui se suprimiran."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Suprimeix"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancel·la"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Per continuar amb la configuració del perfil professional, hauràs d\'encriptar el dispositiu. És possible que triguis una estona a fer-ho."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancel·la"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Encripta"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Encriptació completa"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Toca per continuar amb la configuració del perfil"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"No s\'ha pogut configurar el perfil professional. Contacta amb el departament de TI o prova-ho més tard."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"El dispositiu no és compatible amb els perfils professionals."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"El propietari del dispositiu ha de configurar els perfils professionals."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Aquesta aplicació de Launcher no admet el teu perfil professional. Has de fer servir un Launcher que sigui compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancel·la"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"D\'acord"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Usuari del dispositiu de la feina"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configuració del dispositiu"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"S\'estan processant dades de configuració..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"S\'està connectant a la Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"S\'està baixant l\'aplicació d\'administració..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"S\'està instal·lant aplic. d\'administració..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"S\'està definint el propietari del disposit..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Vols aturar la configuració?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Confirmes que vols deixar de configurar i d\'esborrar les dades del dispositiu?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancel·la"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"D\'acord"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Restableix"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"No s\'ha pogut configurar el dispositiu. Contacta amb el departament de TI."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Aquest dispositiu ja està configurat."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"No s\'ha pogut connectar a la Wi-Fi."</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"No s\'ha pogut fer servir l\'aplicació d\'administració a causa d\'un error de la suma de comprovació. Contacta amb el departament de TI."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"No s\'ha pogut baixar l\'aplicació d\'administració."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"No es pot fer servir l\'aplicació d\'administració perquè està malmesa o hi falten components. Contacta amb el departament de TI."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"No s\'ha pogut instal·lar l\'aplicació d\'administració."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"L\'aplicació d\'administració no està instal·lada al dispositiu."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Vols aturar la configuració?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Confirmes que vols aturar la configuració?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"No"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Sí"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"S\'està cancel·lant..."</string>
+</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
new file mode 100644
index 0000000..1a68889
--- /dev/null
+++ b/res/values-cs/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Jejda!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Nastavení profilu"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Tento profil řídí a zabezpečuje vaše společnost. Vše ostatní v tomto zařízení máte pod kontrolou vy."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Následující aplikace bude potřebovat přístup k tomuto profilu:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Nastavit"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Nastavování pracovního profilu..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administrátor může sledovat a spravovat nastavení, firemní přístup, aplikace a data přidružená k tomuto profilu, včetně aktivity v síti a informací o poloze vašeho zařízení."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administrátor může sledovat a spravovat nastavení, firemní přístup, aplikace a data přidružená k tomuto zařízení, včetně aktivity v síti a informací o poloze vašeho zařízení."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Další informace, včetně zásad ochrany soukromí vaší organizace, vám poskytne administrátor."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Další informace"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Zrušit"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Pracovní profil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"V zařízení již pracovní profil máte. Chcete jej odstranit?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Opravdu tento pracovní profil chcete odstranit? Všechna jeho data budou vymazána."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Odstranit"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Zrušit"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Chcete-li v nastavení pracovního profilu pokračovat, bude třeba zařízení zašifrovat. Může to chvíli trvat."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Zrušit"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Zašifrovat"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Šifrování dokončeno"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Klepnutím pokračujte v nastavení prac. profilu."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Nastavení pracovního profilu se nezdařilo. Obraťte se na oddělení IT nebo to zkuste znovu později."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Vaše zařízení pracovní profily nepodporuje."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Pracovní profily musí nastavit vlastník zařízení"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Váš pracovní profil tato aplikace spouštěče nepodporuje. Budete muset přejít na spouštěč, který je kompatibilní."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Zrušit"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Uživatel pracovního zařízení"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Nastavení zařízení"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Zpracování dat nastavení..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Připojování k síti Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Stahování aplikace pro správu..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instalace aplikace pro správu..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Nastavování vlastníka zařízení..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Zastavit nastavování?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Opravdu chcete nastavení ukončit a vymazat data zařízení?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Zrušit"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Resetovat"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Nastavení zařízení se nezdařilo. Obraťte se na oddělení IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Toto zařízení je již nastaveno."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Připojení k síti Wi-Fi se nezdařilo"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Kvůli chybě kontrolního součtu nelze aplikaci pro správu použít. Obraťte se na oddělení IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Stažení aplikace pro správu se nezdařilo."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Aplikaci pro správu nelze použít. Buď v ní chybí některé komponenty, nebo je poškozená. Obraťte se na oddělení IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Instalace aplikace pro správu se nezdařila."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Ve vašem zařízení není nainstalována aplikace pro správu."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Zastavit nastavování?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Opravdu chcete nastavování zastavit?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ne"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ano"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Rušení..."</string>
+</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
new file mode 100644
index 0000000..157923f
--- /dev/null
+++ b/res/values-da/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Enhedsklargøring"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hovsa!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Opret din profil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Din organisation styrer denne profil og sørger for, at den er sikker. Du styrer alt andet på din enhed."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Den følgende app skal have adgang til denne profil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Konfigurer"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Konfigurerer din arbejdsprofil…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Din administrator kan overvåge og administrere indstillinger, virksomhedsadgang, apps og data, der er knyttet til profilen, herunder netværksaktivitet og enhedens placeringsoplysninger."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Din administrator kan overvåge og administrere indstillinger, virksomhedsadgang, apps og data, der er knyttet til denne enhed, herunder netværksaktivitet og enhedens placeringsoplysninger."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Kontakt din administrator for at få flere oplysninger, herunder om din organisations privatlivspolitik."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Få flere oplysninger"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Annuller"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Arbejdsprofil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Du har allerede en arbejdsprofil på enheden. Vil du at fjerne den?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Er du sikker på, at du vil fjerne dette arbejdsprofil? Alle profilens data slettes."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Fjern"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Annuller"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Du skal kryptere din enhed, inden du fortsætter med at konfigurere din arbejdsprofil. Dette kan tage et stykke tid."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Annuller"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Kryptér"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Krypteringen er fuldført"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Tryk for at fortsætte konfigurationen af din arbejdsprofil"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Din arbejdsprofil kunne ikke oprettes. Kontakt din IT-afdeling, eller prøv igen senere."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Din enhed understøtter ikke arbejdsprofiler"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Arbejdsprofiler skal oprettes af enhedens ejer"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Din arbejdsprofil understøttes ikke af denne starter. Skift til en starter, der er kompatibel."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Annuller"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Bruger af arbejdsenhed"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Konfigurer din enhed"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Behandler konfigurationsdata..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Opretter forbindelse til Wi-Fi…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Downloader administrationsapp…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installerer administrationsapp…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Angiver enhedens ejer…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Vil du standse konfigureringen?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Er du sikker på, at du vil standse konfigurationen og slette enhedens data?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Annuller"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Gendan fabriksdata"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Din enhed kunne ikke konfigureres. Kontakt din it-afdeling."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Denne enhed er allerede konfigureret"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Der kunne ikke oprettes forbindelse til Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Administrationsappen kunne ikke bruges på grund af en fejl i kontrolsummen. Kontakt din it-afdeling."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Administrationsappen kunne ikke hentes"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Administrationsappen kan ikke bruges. Den mangler komponenter eller er beskadiget. Kontakt din it-afdeling."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Administrationsappen kunne ikke installeres"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administrationsappen er ikke installeret på din enhed"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Vil du standse konfigurationen?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Er du sikker på, at du vil stoppe konfigurationen?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nej"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ja"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Annullerer..."</string>
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
new file mode 100644
index 0000000..9eddaa9
--- /dev/null
+++ b/res/values-de/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Gerätebereitstellung"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hoppla!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Profil einrichten"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ihr Unternehmen verwaltet dieses Profil und sorgt für seine Sicherheit. Sie verwalten alle anderen Aspekte Ihres Geräts."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Die folgende App benötigt Zugriff auf dieses Profil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Einrichten"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Arbeitsprofil wird eingerichtet…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Ihr Administrator kann die mit diesem Profil verknüpften Einstellungen, Unternehmens-Zugriffsrechte, Apps und Daten überwachen und verwalten, einschließlich der Netzwerkaktivitäten und der Standortinformationen für Ihr Gerät."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Ihr Administrator kann die mit diesem Gerät verbundenen Einstellungen, Unternehmenszugriffsrechte, Apps und Daten überwachen und verwalten, einschließlich der Netzwerkaktivitäten und der Standortinformationen Ihres Geräts."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Weitere Informationen, auch zur Datenschutzerklärung Ihrer Organisation, erhalten Sie bei Ihrem Administrator."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Weitere Informationen"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Abbrechen"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Arbeitsprofil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Es ist bereits ein Arbeitsprofil auf Ihrem Gerät vorhanden. Möchten Sie es entfernen?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Möchten Sie das Arbeitsprofil wirklich entfernen? Alle zum Profil gehörenden Daten werden dadurch gelöscht."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Entfernen"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Abbrechen"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Um mit dem Einrichten Ihres Arbeitsprofils fortzufahren, müssen Sie Ihr Gerät verschlüsseln. Dies kann einige Zeit dauern."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Abbrechen"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Verschlüsseln"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Verschlüsselung abgeschlossen"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Tippen, um das Einrichten des Arbeitsprofils fortzusetzen"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Ihr Arbeitsprofil konnte nicht eingerichtet werden. Bitte wenden Sie sich an Ihre IT-Abteilung oder versuchen Sie es später erneut."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Ihr Gerät unterstützt keine Arbeitsprofile."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Arbeitsprofile können nur vom Eigentümer des Geräts eingerichtet werden."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ihr Arbeitsprofil wird von dieser Launcher-App nicht unterstützt. Wechseln Sie zu einem kompatiblen Launcher."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Abbrechen"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Nutzer des Dienstgeräts"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Gerät einrichten"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Einrichtungsdaten werden verarbeitet…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"WLAN-Verbindung wird hergestellt…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Admin-App wird heruntergeladen…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Admin-App wird installiert…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Geräteeigentümer wird eingerichtet…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Einrichtung abbrechen?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Möchten Sie die Einrichtung wirklich beenden und die Daten von Ihrem Gerät löschen?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Abbrechen"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Zurücksetzen"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Das Gerät konnte nicht eingerichtet werden. Bitte wenden Sie sich an Ihre IT-Abteilung."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Das Gerät ist bereits eingerichtet."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Es konnte keine WLAN-Verbindung hergestellt werden."</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Fehler bei der Prüfsumme. Die Admin-App kann nicht genutzt werden. Bitte wenden Sie sich an Ihre IT-Abteilung."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Die Admin-App konnte nicht heruntergeladen werden."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Die Admin-App kann nicht genutzt werden. Sie wurde beschädigt oder es fehlen Komponenten. Bitte wenden Sie sich an Ihre IT-Abteilung."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Die Admin-App konnte nicht installiert werden."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Die Admin-App ist nicht auf Ihrem Gerät installiert."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Einrichtung abbrechen?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Möchten Sie die Einrichtung wirklich beenden?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nein"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ja"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Abbrechen..."</string>
+</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
new file mode 100644
index 0000000..8665b84
--- /dev/null
+++ b/res/values-el/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Πάροχος συσκευής"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ωχ!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Ρυθμίστε το προφίλ σας"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ο οργανισμός σας ελέγχει αυτό το προφίλ και το διατηρεί ασφαλές. Εσείς ελέγχετε όλα τα υπόλοιπα στοιχεία στη συσκευή σας."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Η παρακάτω εφαρμογή θα χρειαστεί πρόσβαση σε αυτό το προφίλ:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Ρύθμιση"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Δημιουργία του προφίλ εργασίας σας…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Ο διαχειριστής σας έχει τη δυνατότητα να παρακολουθεί και να διαχειρίζεται ρυθμίσεις, εταιρική πρόσβαση, εφαρμογές και δεδομένα που σχετίζονται με το προφίλ, συμπεριλαμβανομένων της δραστηριότητας του δικτύου και των πληροφοριών τοποθεσίας της συσκευής σας."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Ο διαχειριστής σας έχει τη δυνατότητα να παρακολουθεί και να διαχειρίζεται τις ρυθμίσεις, την εταιρική πρόσβαση, τις εφαρμογές και τα δεδομένα που σχετίζονται με αυτήν τη συσκευή, συμπεριλαμβανομένης της δραστηριότητας δικτύου και των πληροφοριών τοποθεσίας της συσκευής σας."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Επικοινωνήστε με το διαχειριστή σας για περισσότερες πληροφορίες, συμπεριλαμβανομένων των πολιτικών απορρήτου του οργανισμού σας."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Μάθετε περισσότερα"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Ακύρωση"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ΟΚ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Προφίλ εργασίας"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Υπάρχει ήδη ένα προφίλ εργασίας στη συσκευή σας. Θέλετε να το καταργήσετε;"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτό το προφίλ εργασίας; Όλα τα δεδομένα θα διαγραφούν."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Κατάργηση"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Ακύρωση"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Για να συνεχίσετε με τη ρύθμιση του προφίλ εργασίας σας, θα πρέπει να κρυπτογραφήσετε τη συσκευή σας. Αυτό μπορεί να διαρκέσει λίγη ώρα."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Ακύρωση"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Κρυπτογράφηση"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Η κρυπτογράφηση ολοκληρώθηκε"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Αγγίξτε για να συνεχίσετε τη ρύθμιση του προφίλ εργασίας σας"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Δεν ήταν δυνατή η ρύθμιση του προφίλ εργασίας σας. Επικοινωνήστε με το τμήμα πληροφορικής υποστήριξης ή δοκιμάστε ξανά αργότερα."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Η συσκευή σας δεν υποστηρίζει τα προφίλ εργασίας"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Τα προφίλ εργασίας θα πρέπει να οριστούν από τον κάτοχο της συσκευής"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Το προφίλ εργασίας σας δεν υποστηρίζεται από αυτήν την εφαρμογή εκκίνησης. Θα πρέπει να χρησιμοποιήσετε μια συμβατή εφαρμογή εκκίνησης."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Ακύρωση"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Χρήστης συσκευής εργασίας"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Ρύθμιση της συσκευής σας"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Επεξεργασία δεδομένων ρύθμισης…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Σύνδεση με Wi-Fi…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Λήψη εφαρμογής διαχείρισης…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Εγκατάσταση εφαρμογής διαχείρισης…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Ρύθμιση του κατόχου της συσκευής…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Διακοπή ρύθμισης;"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Είστε βέβαιοι ότι θέλετε να σταματήσετε τη ρύθμιση και να διαγράψετε τα δεδομένα της συσκευής σας;"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Ακύρωση"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ΟΚ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Επαναφορά"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Δεν ήταν δυνατή η ρύθμιση της συσκευής σας. Επικοινωνήστε με το τμήμα πληροφορικής υποστήριξης."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Αυτή η συσκευή έχει ρυθμιστεί ήδη"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Δεν είναι δυνατή η σύνδεση στο Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Δεν ήταν δυνατή η χρήση της εφαρμογής διαχείρισης λόγω σφάλματος του αθροίσματος ελέγχου. Επικοινωνήστε με το τμήμα πληροφορικής υποστήριξης."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Δεν ήταν δυνατή η λήψη της εφαρμογής διαχείρισης"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Δεν ήταν δυνατή η χρήση της εφαρμογής διαχείρισης. Λείπουν στοιχεία ή είναι κατεστραμμένα. Επικοινωνήστε με το τμήμα πληροφορικής υποστήριξης."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Δεν ήταν δυνατή η εγκατάσταση της εφαρμογής διαχείρισης"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Η εφαρμογή διαχείρισης δεν είναι εγκατεστημένη στη συσκευή σας"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Διακοπή ρύθμισης;"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Είστε βέβαιοι ότι θέλετε να διακόψετε τη ρύθμιση;"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Όχι"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ναι"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Γίνεται ακύρωση…"</string>
+</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..fc3379f
--- /dev/null
+++ b/res/values-en-rGB/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oops!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Set up your profile"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Your organisation controls this profile and keeps it secure. You control everything else on your device."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"The following app will need to access this profile:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Set up"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Setting up your work profile..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Your administrator has the ability to monitor and manage settings, corporate access, apps and data associated with the profile, including network activity and your device\'s location information."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Your administrator has the ability to monitor and manage settings, corporate access, apps and data associated with this device, including network activity and your device\'s location information."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contact your administrator for more information, including your organisation\'s privacy policies."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Learn more"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancel"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Work profile"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"You already have a work profile on your device. Do you want to remove it?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Are you sure you want to remove this work profile? All of its data will be deleted."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Remove"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancel"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"To continue setting up your work profile, you\'ll need to encrypt your device. This may take some time."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancel"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Encrypt"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Encryption complete"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Touch to continue setting up your work profile"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Couldn\'t set up your work profile. Contact your IT department or try again later."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Your device doesn\'t support work profiles"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Work profiles need to be set up by the device owner"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Your work profile isn\'t supported by this launcher app. You\'ll need to switch to a launcher that\'s compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancel"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"User of work device"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Set up your device"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Processing setup data..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Connecting to Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Downloading the admin app..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installing the admin app..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Setting the device owner..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Stop setting up?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Are you sure that you want to stop setting up and erase your device\'s data?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancel"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Reset"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Couldn\'t set up your device. Contact your IT department."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"This device is already set up"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Couldn\'t connect to Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Couldn\'t use the admin app due to a checksum error. Contact your IT department."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Couldn\'t download the admin app"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Can\'t use the admin app. It\'s missing components or corrupted. Contact your IT department."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Couldn\'t install the admin app"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"The admin app isn\'t installed on your device"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Stop setting up?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Are you sure that you want to stop setting up?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"No"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Yes"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Cancelling ..."</string>
+</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..fc3379f
--- /dev/null
+++ b/res/values-en-rIN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oops!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Set up your profile"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Your organisation controls this profile and keeps it secure. You control everything else on your device."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"The following app will need to access this profile:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Set up"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Setting up your work profile..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Your administrator has the ability to monitor and manage settings, corporate access, apps and data associated with the profile, including network activity and your device\'s location information."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Your administrator has the ability to monitor and manage settings, corporate access, apps and data associated with this device, including network activity and your device\'s location information."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contact your administrator for more information, including your organisation\'s privacy policies."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Learn more"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancel"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Work profile"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"You already have a work profile on your device. Do you want to remove it?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Are you sure you want to remove this work profile? All of its data will be deleted."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Remove"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancel"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"To continue setting up your work profile, you\'ll need to encrypt your device. This may take some time."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancel"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Encrypt"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Encryption complete"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Touch to continue setting up your work profile"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Couldn\'t set up your work profile. Contact your IT department or try again later."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Your device doesn\'t support work profiles"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Work profiles need to be set up by the device owner"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Your work profile isn\'t supported by this launcher app. You\'ll need to switch to a launcher that\'s compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancel"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"User of work device"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Set up your device"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Processing setup data..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Connecting to Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Downloading the admin app..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installing the admin app..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Setting the device owner..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Stop setting up?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Are you sure that you want to stop setting up and erase your device\'s data?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancel"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Reset"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Couldn\'t set up your device. Contact your IT department."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"This device is already set up"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Couldn\'t connect to Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Couldn\'t use the admin app due to a checksum error. Contact your IT department."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Couldn\'t download the admin app"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Can\'t use the admin app. It\'s missing components or corrupted. Contact your IT department."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Couldn\'t install the admin app"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"The admin app isn\'t installed on your device"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Stop setting up?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Are you sure that you want to stop setting up?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"No"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Yes"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Cancelling ..."</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..0716516
--- /dev/null
+++ b/res/values-es-rUS/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Aprovisionador de dispositivos"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"¡Uy!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configura tu perfil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Tu organización controla este perfil y lo mantiene seguro. Tú controlas todo lo demás en el dispositivo."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"La siguiente aplicación necesitará acceso a este perfil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurar"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Configurando tu perfil de trabajo…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"El administrador puede supervisar y administrar la configuración, el acceso corporativo, las aplicaciones y los datos asociados con el perfil, incluida la actividad de la red y la información de ubicación del dispositivo."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"El administrador de organización puede supervisar y administrar la configuración, el acceso corporativo, las aplicaciones y los datos asociados a este dispositivo, incluida la actividad de red y la información de ubicación del dispositivo."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Para obtener más información, como las políticas de privacidad de la organización, comunícate con el administrador."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Más información"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancelar"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Aceptar"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Perfil de trabajo"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Ya tienes un perfil de trabajo en el dispositivo. ¿Deseas eliminarlo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"¿Confirmas que quieres eliminar este perfil de trabajo? Se eliminarán todos sus datos."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Eliminar"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancelar"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Para continuar con la configuración del perfil de trabajo, deberás encriptar el dispositivo. Esto podría tardar un poco."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancelar"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Encriptar"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Encriptación completa"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Toca para continuar configurando tu perfil de trabajo."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"No se pudo configurar el perfil de trabajo. Comunícate con el Departamento de TI o vuelve a intentarlo más tarde."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"El dispositivo no admite perfiles de trabajo."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"El propietario del dispositivo debe configurar los perfiles de trabajo."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Esta aplicación de launcher no admite tu perfil de trabajo. Deberás utilizar un launcher compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancelar"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Aceptar"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Usuario de dispositivo de trabajo"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurar el dispositivo"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Procesando datos de configuración…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Conectando a Wi-Fi…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Descargando aplicación de administración…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instalando aplicación de administración…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Configurando propietario del dispositivo…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"¿Detener la configuración?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"¿Confirmas que deseas detener la configuración y borrar los datos de tu dispositivo?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancelar"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Aceptar"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Restablecer"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"No se pudo configurar el dispositivo. Comunícate con el Departamento de TI."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Este dispositivo ya está configurado."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"No se pudo conectar a la red Wi-Fi."</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"No se pudo usar la aplicación de administración debido a un error de suma de comprobación. Comunícate con el Departamento de TI."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"No se pudo descargar la aplicación de administración."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"No se puede usar la aplicación de administración. Hay componentes que faltan o que están dañados. Comunícate con el Departamento de TI."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"No se pudo instalar la aplicación de administración."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"La aplicación de administración no está instalada en el dispositivo."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"¿Detener la configuración?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"¿Confirmas que quieres detener la configuración?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"No"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Sí"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Cancelando…"</string>
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
new file mode 100644
index 0000000..c2491b1
--- /dev/null
+++ b/res/values-es/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Aprovisionador de dispositivos"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"¡Vaya!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configura tu perfil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Tu organización controla este perfil y mantiene su seguridad. Tú controlas el resto del contenido del dispositivo."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Esta aplicación necesitará acceder a tu perfil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurar"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Configurando tu perfil de trabajo..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Tu administrador puede controlar y administrar los ajustes, el acceso corporativo, las aplicaciones y los datos asociados al perfil, como la actividad de red y la información de ubicación del dispositivo."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Tu administrador puede controlar y administrar los ajustes, el acceso corporativo, las aplicaciones y los datos asociados al dispositivo, como la actividad de red y la información de ubicación del dispositivo."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Para obtener más información, incluidas las políticas de privacidad de tu organización, ponte en contacto con el administrador."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Más información"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancelar"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Aceptar"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Perfil de trabajo"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Ya tienes un perfil de trabajo en el dispositivo. ¿Quieres eliminarlo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"¿Seguro que quieres eliminar este perfil de trabajo? Se eliminarán todos sus datos."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Eliminar"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancelar"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Para seguir configurando tu perfil de trabajo, tendrás que cifrar el dispositivo. Este proceso puede tardar un tiempo."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancelar"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Cifrar"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Cifrado completado"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Toca para continuar la configuración del perfil de trabajo"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"No se ha podido configurar el perfil de trabajo. Ponte en contacto con el departamento de TI o vuelve a intentarlo más tarde."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Tu dispositivo no admite perfiles de trabajo"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"El propietario del dispositivo debe configurar los perfiles de trabajo"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Esta aplicación de launcher no admite tu perfil de trabajo. Debes utilizar un launcher que sea compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancelar"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Aceptar"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Usuario del dispositivo de trabajo"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurar tu dispositivo"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Procesando datos de configuración..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Conectando a red Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Descargando aplicación de administración..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instalando aplicación de administración..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Estableciendo propietario del dispositivo..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"¿Detener configuración?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"¿Seguro que quieres detener la configuración y borrar los datos del dispositivo?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancelar"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Aceptar"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Restablecer"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"No se ha podido configurar el dispositivo. Ponte en contacto con el departamento de TI."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Este dispositivo ya está configurado"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"No se ha podido establecer conexión con la red Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"No se ha podido utilizar la aplicación de administración debido a un error de la suma de comprobación. Ponte en contacto con el departamento de TI."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"No se ha podido descargar la aplicación de administración"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"No se puede utilizar la aplicación de administración porque faltan componentes o está dañada. Ponte en contacto con el administrador de TI."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"No se ha podido instalar la aplicación de administración"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"La aplicación de administración no está instalada en tu dispositivo"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"¿Detener configuración?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"¿Seguro que quieres detener la configuración?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"No"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Sí"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Cancelando..."</string>
+</resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
new file mode 100644
index 0000000..720af3f
--- /dev/null
+++ b/res/values-et-rEE/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Seadme ettevalmistamine"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Vabandust!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Seadistage oma profiil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Teie organisatsioon haldab seda profiili ja hoiab seda turvalisena. Kõike muud oma seadmes juhite teie."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Järgmine rakendus nõuab juurdepääsu sellele profiilile:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Seadistus"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Tööprofiili seadistamine ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Teie administraator saab jälgida ja hallata selle profiiliga seotud seadeid, ettevõtte juurdepääsu, rakendusi ning andmeid, sh võrgutegevust ja seadme asukohateavet."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Teie administraator saab jälgida ja hallata selle seadmega seotud seadeid, ettevõtte juurdepääsu, rakendusi ning andmeid, sh võrgutegevust ja seadme asukohateavet."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Lisateabe saamiseks (sh organisatsiooni privaatsuseeskirjade kohta) võtke ühendust administraatoriga."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Lisateave"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Tühista"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Tööprofiil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Seadmes on juba tööprofiil. Kas soovite selle eemaldada?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Kas soovite kindlasti eemaldada selle tööprofiili? Kõik selle andmed kustutatakse."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Eemalda"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Tühista"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Tööprofiili seadistamise jätkamiseks peate seadme krüpteerima. Selleks võib kuluda pisut aega."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Tühista"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Krüpteeri"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Krüpteerimine on lõpule viidud"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Puudutage, et jätkata tööprofiili seadistamist"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Tööprofiili ei õnnestunud seadistada. Võtke ühendust oma IT-osakonnaga või proovige hiljem uuesti."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Teie seade ei toeta tööprofiile"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Tööprofiilid peab seadistama seadme omanik"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"See käivitusrakendus ei toeta teie tööprofiili. Peate minema üle ühilduvale käivitusrakendusele."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Tühista"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Tööseadme kasutaja"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Seadme seadistamine"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Seadistamisandmete töötlemine ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"WiFi-ga ühenduse loomine ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Administraatori rakenduse allalaadimine ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Administraatori rakenduse installimine ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Seadme omaniku määramine ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Kas peatada seadistamine?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Kas soovite kindlasti lõpetada seadistamise ja kustutada seadme andmed?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Tühista"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Lähtesta"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Seadet ei õnnestunud seadistada. Võtke ühendust oma IT-osakonnaga."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"See seade on juba seadistatud"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"WiFi-ga ei saanud ühendust"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Administraatori rakendust ei saa kasutada kontrollsumma vea tõttu. Võtke ühendust oma IT-osakonnaga."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Administraatorirakendust ei õnnestunud alla laadida"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Administraatori rakendust ei saa kasutada. See ei sisalda kõiki komponente või on rikutud. Võtke ühendust oma IT-osakonnaga."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Administraatorirakendust ei õnnestunud installida"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administraatorirakendus ei ole sellesse seadmesse installitud"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Kas peatada seadistamine?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Kas soovite kindlasti seadistamise peatada?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ei"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Jah"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Tühistamine …"</string>
+</resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
new file mode 100644
index 0000000..714f763
--- /dev/null
+++ b/res/values-eu-rES/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Gailuaren hornitzailea"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Arazo bat izan da."</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Konfiguratu profila"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Erakundeak kontrolatzen du profila eta seguru mantentzen du. Gailuan duzun gainerako guztia zeuk kontrolatzen duzu."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Aplikazio honek profila atzitu beharko du:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Konfiguratu"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Laneko profila konfiguratzen…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administratzaileak ikuskatu eta kudeatu egin ditzake profilarekin erlazionatutako ezarpenak, enpresaren sarbide-baimenak, aplikazioak eta datuak (sarean izandako jarduerak eta gailuaren kokapenari buruzko informazioa barne)."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administratzaileak ikuskatu eta kudeatu egin ditzake gailuarekin erlazionatutako ezarpenak, enpresaren sarbide-baimenak, aplikazioak eta datuak (sarean izandako jarduerak eta gailuaren kokapenari buruzko informazioa barne)."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Informazio gehiago lortzeko (baita erakundearen pribatutasun-gidalerroei buruzkoa ere), jarri administratzailearekin harremanetan."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Lortu informazio gehiago"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Utzi"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Ados"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Laneko profila"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Gailuan baduzu laneko profil bat dagoeneko. Lehendik duzun profila kendu nahi duzu?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Ziur laneko profila ezabatu nahi duzula? Bertako datu guztiak ezabatuko dira."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Kendu"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Utzi"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Laneko profila konfiguratzen jarraitzeko, gailua enkriptatu beharko duzu. Minutu batzuk behar izan ditzakegu horretarako."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Utzi"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Enkriptatu"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Enkriptatu da"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Ukitu hau laneko profila konfiguratzen jarraitzeko"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Ezin izan da konfiguratu laneko profila. Jarri informatika-sailarekin harremanetan edo saiatu berriro geroago."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Gailuak ez du laneko profilik onartzen"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Gailuaren jabeak konfiguratu behar ditu laneko profilak"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Aplikazio abiarazle honek ez du zure laneko profila onartzen. Abiarazle bateragarri bat erabili beharko duzu."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Utzi"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Ados"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Laneko gailuaren erabiltzailea"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Konfiguratu gailua"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Konfigurazio-datuak prozesatzen…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi sarera konektatzen…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Administrazio-aplikazioa deskargatzen…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Administrazio-aplikazioa instalatzen…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Gailuaren jabea ezartzen…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Konfiguratzeari utzi nahi diozu?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Ziur konfiguratzeari utzi eta gailuko datu guztiak ezabatu nahi dituzula?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Utzi"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Ados"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Berrezarri"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Ezin izan da konfiguratu gailua. Jarri informatika-sailarekin harremanetan."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Gailua konfiguratuta dago dagoeneko"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Ezin izan da Wi-Fi sarera konektatu"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Ezin izan da erabili administrazio-aplikazioa, batuketa egitean errore bat gertatu delako. Jarri informatika-sailarekin harremanetan."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Ezin izan da administrazio-aplikazioa deskargatu"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Ezin da erabili administrazio-aplikazioa. Osagaiak falta zaizkio edo hondatuta dago. Jarri informatika-sailarekin harremanetan."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Ezin izan da administrazio-aplikazioa instalatu"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administrazio-aplikazioa ez dago gailuan instalatuta"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Konfiguratzeari utzi nahi diozu?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Ziur konfiguratzeari utzi nahi diozula?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ez"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Bai"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Bertan behera uzten…"</string>
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
new file mode 100644
index 0000000..17b92a2
--- /dev/null
+++ b/res/values-fa/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"وای!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"تنظیم نمایه"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"سازمان شما این نمایه را کنترل می‌کند و آن را ایمن نگه می‌دارد. کنترل همه چیزهای دیگر در دستگاهتان در دست شماست."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"برنامه زیر نیاز به دسترسی به این نمایه خواهد داشت:"</string>
+    <string name="set_up" msgid="7012862095553564169">"راه‌اندازی"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"در حالت تنظیم نمایه کاریتان..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"سرپرست سیستم شما می‌تواند بر تنظیمات، دسترسی سازمانی، برنامه‌ها و داده‌های مرتبط با نمایه، از جمله فعالیت شبکه و اطلاعات مکان دستگاهتان نظارت و مدیریت کند."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"سرپرست سیستمتان می‌تواند بر تنظیمات، دسترسی شرکتی، برنامه‌ها و اطلاعات مرتبط با این دستگاه، از جمله فعالیت شبکه و اطلاعات مکان دستگاه‌ شما نظارت و مدیریت کند."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"برای دریافت اطلاعات بیشتر، از جمله خط‌مشی‌های رازداری سازمانتان، با سرپرست سیستم خودتان تماس بگیرید."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"بیشتر بدانید"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"لغو"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"تأیید"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"نمایه کاری"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"شما در حال حاضر یک نمایه کاری در دستگاهتان دارید. آیا می‌خواهید آن را حذف کنید؟"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"مطمئنید می‌خواهید این نمایه کاری را حذف کنید؟ همه اطلاعات آن حذف خواهند شد."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"حذف"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"لغو"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"برای ادامه راه‌اندازی نمایه کاری‌تان، لازم است که دستگاهتان را رمزگذاری کنید. این کار ممکن است مدتی طول بکشد."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"لغو"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"رمزگذاری"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"رمزگذاری کامل شد"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"برای ادامه راه‌اندازی نمایه کاری‌تان، لمس کنید"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"نمایه کاریتان تنظیم نشد. با بخش فناوری اطلاعات مربوط به خودتان تماس بگیرید یا دوباره بعداً امتحان کنید."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"دستگاهتان از نمایه‌های کاری پشتیبانی نمی‌کند"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"مالک دستگاه باید نمایه‌های کاری را راه‌اندازی کند"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"نمایه کاریتان از سوی این برنامه راه‌انداز پشتیبانی نمی‌شود. باید راه‌انداز خودتان را به راه‌اندازی تغییر دهید که سازگار است."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"لغو"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"تأیید"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"کاربر دستگاه کاری"</string>
+    <string name="setup_device" msgid="6725265673245816366">"تنظیم دستگاه‌تان"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"در حال پردازش اطلاعات تنظیم..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"‏در حال برقراری اتصال به Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"در حال دانلود برنامه سرپرست..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"در حال نصب برنامه سرپرست..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"در حال تنظیم مالک دستگاه..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"راه‌اندازی متوقف شود؟"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"مطمئنید می‌خواهید تنظیم را متوقف کنید و اطلاعات دستگاه‌تان را پاک کنید؟"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"لغو"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"تأیید"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"بازنشانی"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"دستگاه‌تان تنظیم نشد. با بخش فناوری اطلاعات مربوط به خودتان تماس بگیرید."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"این دستگاه از قبل راه‌اندازی شده است"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"‏اتصال به Wi-Fi ممکن نیست"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"به دلیل خطای چک‌سام، برنامه سرپرست استفاده نشد. با بخش فناوری اطلاعات مربوط به خودتان تماس بگیرید."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"برنامه سرپرستی دانلود نشد"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"برنامه سرپرست استفاده نمی‌شود. مؤلفه‌های آن وجود ندارند یا خراب هستند. با بخش فناوری اطلاعات مربوط به خودتان تماس بگیرید."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"برنامه سرپرستی نصب نشد"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"برنامه سرپرستی روی دستگاهتان نصب نشده است"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"راه‌اندازی متوقف شود؟"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"آیا مطمئنید که می‌خواهید راه‌اندازی را متوقف کنید؟"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"خیر"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"بله"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"در حال لغو..."</string>
+</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
new file mode 100644
index 0000000..73cab78
--- /dev/null
+++ b/res/values-fi/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Laitteen käyttäjien hallinta"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hups!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Luo Google-profiili"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Organisaatiosi hallinnoi tätä profiilia ja suojaa sen tiedot. Voit itse hallinnoida laitteen muita ominaisuuksia."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Seuraava sovellus tarvitsee käyttöoikeuden profiiliin:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Määritä asetukset"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Määritetään työprofiilia…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Järjestelmänvalvoja voi valvoa ja hallinnoida asetuksia, yrityskäyttöä, profiiliin liitettyjä sovelluksia ja tietoja, kuten verkon käyttöä ja laitteen sijaintitietoja."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Järjestelmänvalvoja voi valvoa ja hallinnoida asetuksia, yrityskäyttöä, sovelluksia ja tähän laitteeseen liittyviä tietoja, kuten verkon käyttöä ja laitteen sijaintitietoja."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Pyydä järjestelmänvalvojalta lisätietoja esimerkiksi organisaation tietosuojakäytännöistä."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Lisätietoja"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Peruuta"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Työprofiili"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Laitteessa on jo työprofiili. Haluatko poistaa sen?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Haluatko varmasti poistaa tämän työprofiilin? Kaikki profiilin tiedot poistetaan."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Poista"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Peruuta"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Työprofiilin määritysten jatkaminen edellyttää laitteen salaamista. Se voi kestää hetken."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Peruuta"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Salaa"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Salaus on valmis"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Siirry työprofiilin asetuksiin koskettamalla"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Työprofiilin määrittäminen epäonnistui. Ota yhteyttä yrityksesi IT-osastoon tai yritä myöhemmin uudelleen."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Laite ei tue työprofiileja"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Vain laitteen omistaja voi määrittää työprofiileja"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Tämä käynnistysohjelma ei tue profiilisiasi. Vaihda yhteensopivaan käynnistysohjelmaan."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Peruuta"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Työpaikan laitteen käyttäjä"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Määritä laitteen asetukset"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Käsitellään asennustietoja…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Muodostetaan Wi-Fi-yhteyttä…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Ladataan hallintasovellusta…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Asennetaan hallintasovellusta…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Määritetään laitteen omistajaa…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Lopetetaanko määritys?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Haluatko varmasti lopettaa asetusten määrittämisen ja tyhjentää laitteen tiedot?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Peruuta"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Nollaa"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Laitteen asetusten määrittäminen epäonnistui. Ota yhteyttä yrityksesi IT-osastoon."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Laitteen asetukset on jo määritetty"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi-yhteyden muodostaminen epäonnistui"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Hallintasovelluksen käyttäminen epäonnistui tarkistussummavirheen vuoksi. Ota yhteyttä yrityksesi IT-osastoon."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Hallintasovelluksen lataaminen epäonnistui"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Hallintasovellusta ei voi käyttää. Sovellus on vioittunut tai siitä puuttuu komponentteja. Ota yhteyttä yrityksesi IT-osastoon."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Hallintasovelluksen asentaminen epäonnistui"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Hallintasovellusta ei ole asennettu laitteeseen"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Keskeytetäänkö määrittäminen?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Haluatko varmasti keskeyttää määrittämisen?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ei"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Kyllä"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Peruutetaan..."</string>
+</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..e982065
--- /dev/null
+++ b/res/values-fr-rCA/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Approvisionneur de l\'appareil"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oups!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configurer votre profil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Votre organisation gère ce profil et assure sa sécurité. Vous contrôlez tout le reste sur votre appareil."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"L\'application suivante devra accéder à ce profil :"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurer"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Configuration de votre profil professionnel en cours…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Votre administrateur peut surveiller et gérer les paramètres, l\'accès aux données d\'entreprise, les applications et les données associées au profil, y compris l\'activité réseau et les données de localisation de votre appareil."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"L\'administrateur de votre entreprise peut surveiller et gérer les paramètres, les accès, les applications et les données associés à cet appareil, y compris votre activité réseau et les données de localisation de votre appareil."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Pour obtenir plus d\'information, y compris les politiques de confidentialité de votre entreprise, communiquez avec votre administrateur."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"En savoir plus"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Annuler"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profil professionnel"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Vous avez déjà un profil professionnel sur votre appareil. Voulez-vous le supprimer?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Voulez-vous vraiment supprimer ce profil professionnel? Toutes les données seront supprimées."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Supprimer"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Annuler"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Pour continuer la configuration de votre profil professionnel, vous devez chiffrer votre appareil. Cela peut prendre un certain temps."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Annuler"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Chiffrer"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Chiffrement terminé"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Touchez pour continuer la configuration de votre profil professionnel"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Impossible de configurer votre profil professionnel. Communiquez avec votre service informatique, ou réessayez plus tard."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Votre appareil ne prend pas en charge les profils professionnels"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Les profils professionnels doivent être configurés par le propriétaire de l\'appareil"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Votre profil professionnel n\'est pas pris en charge par cette application de lancement. Vous devrez utiliser un lanceur d\'applications compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Annuler"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Utilisateur de l\'appareil professionnel"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurer l\'appareil"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Traitement des données de configuration…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Connexion Wi-Fi en cours…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Téléchargement application d\'administration…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installation application d\'administration…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Définition du propriétaire de l\'appareil…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Arrêter la configuration?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Voulez-vous vraiment arrêter la configuration et supprimer les données de votre appareil?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Annuler"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Réinitialiser"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Impossible de configurer votre appareil. Communiquez avec votre service informatique."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Cet appareil a déjà été configuré"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Impossible de se connecter au réseau Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Impossible d\'utiliser l\'application d\'administration en raison d\'une erreur de somme de contrôle. Communiquez avec votre service informatique."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Impossible de télécharger l\'application d\'administration"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Impossible d\'utiliser l\'application d\'administration. Des composants sont manquants ou corrompus. Communiquez avec votre service informatique."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Impossible d\'installer l\'application d\'administration"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"L\'application d\'administration n\'est pas installée sur votre appareil"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Arrêter la configuration?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Voulez-vous vraiment arrêter la configuration?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Non"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Oui"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Annulation en cours…"</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
new file mode 100644
index 0000000..bcab1e1
--- /dev/null
+++ b/res/values-fr/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Petit problème…"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configurer votre profil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ce profil est contrôlé et sécurisé par votre entreprise. Vous contrôlez tout le reste sur votre appareil."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"L\'application suivante devra pouvoir accéder à ce profil :"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurer"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Configuration de votre profil professionnel en cours…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Votre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications et les données associées à ce profil, y compris l\'activité réseau et les données de localisation de votre appareil."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Votre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications et les données associées à cet appareil, y compris l\'activité réseau et les informations de localisation de votre appareil."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contactez votre administrateur pour obtenir plus d\'informations, y compris les règles de confidentialité de votre organisation."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"En savoir plus"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Annuler"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profil professionnel"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Vous avez déjà un profil professionnel sur votre appareil. Voulez-vous le supprimer ?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Voulez-vous vraiment supprimer ce profil professionnel ? Toutes les données associées seront supprimées."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Supprimer"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Annuler"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Pour continuer la configuration de votre profil professionnel, vous devez chiffrer votre appareil. Cela peut prendre un certain temps."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Annuler"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Chiffrer"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Chiffrement terminé"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Appuyez pour continuer la configuration de votre profil professionnel."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Impossible de configurer votre profil professionnel. Contactez votre service informatique, ou réessayez plus tard."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Votre appareil n\'est pas compatible avec les profils professionnels."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Les profils professionnels doivent être configurés par le propriétaire de l\'appareil."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Votre profil professionnel n\'est pas compatible avec cette application de lanceur. Vous devez utiliser un lanceur compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Annuler"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Utilisateur de l\'appareil professionnel"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurer l\'appareil"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Traitement des données de configuration…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Connexion Wi-Fi en cours…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Téléchargement application d\'administration…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installation application d\'administration…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Définition du propriétaire de l\'appareil…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Arrêter la configuration ?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Voulez-vous vraiment arrêter la configuration et supprimer les données de votre appareil ?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Annuler"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Réinitialiser"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Impossible de configurer votre appareil. Contactez votre service informatique."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Cet appareil est déjà configuré."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Impossible de se connecter au réseau Wi-Fi."</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Impossible d\'utiliser l\'application d\'administration en raison d\'une erreur de somme de contrôle. Contactez votre service informatique."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Impossible de télécharger l\'application d\'administration."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Impossible d\'utiliser l\'application d\'administration. Des composants sont manquants ou corrompus. Contactez votre service informatique."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Impossible d\'installer l\'application d\'administration."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"L\'application d\'administration n\'est pas installée sur votre appareil."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Arrêter la configuration ?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Voulez-vous vraiment arrêter la configuration ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Non"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Oui"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Annulation en cours..."</string>
+</resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
new file mode 100644
index 0000000..b7a6a01
--- /dev/null
+++ b/res/values-gl-rES/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Provedor do dispositivo"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Vaia!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configura o teu perfil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"A túa organización controla este perfil e manteno seguro. Ti controlas o resto do contido do dispositivo."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"A seguinte aplicación ten que acceder ao teu perfil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurar"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Configurando o teu perfil de traballo..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"O teu administrador pode controlar e xestionar a configuración, o acceso corporativo, as aplicacións e os datos asociados ao perfil, incluída a actividade de rede e a información da localización do teu dispositivo."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"O teu administrador ten a capacidade de controlar e xestionar a configuración, o acceso corporativo, as aplicacións e os datos asociados a este dispositivo, incluída a actividade da rede e a información de localización do teu dispositivo."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contacta co teu administrador para obter máis información, incluídas as políticas de privacidade da túa organización."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Máis información"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancelar"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Aceptar"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Perfil do traballo"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Xa tes un perfil de traballo no teu dispositivo. Queres eliminalo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Estás seguro de que queres eliminar este perfil de traballo? Eliminaranse todos os seus datos."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Eliminar"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancelar"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Para continuar coa configuración do teu perfil de traballo, necesitarás cifrar o teu dispositivo. Este proceso pode tardar uns minutos."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancelar"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Cifrar"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Cifrado completo"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Toca para continuar coa configuración do teu perfil de traballo"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Non se puido configurar o teu perfil de traballo. Ponte en contacto co departamento de TI ou téntao de novo máis tarde."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"O teu dispositivo non admite perfís de traballo"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"É necesario que o propietario do dispositivo configure os perfís de traballo."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"O teu perfil de traballo non é compatible con esta aplicación do menú de aplicacións. Terás que cambiar a un menú de aplicacións compatible."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancelar"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Aceptar"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Usuario do dispositivo de traballo"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configura o teu dispositivo"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Procesando datos de configuración..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Conectando coa wifi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Descargando a aplicación de administración..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instalando a aplicación de administración..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Definindo o propietario do dispositivo..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Queres deter a configuración?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Estás seguro de que queres deixar de configurar e borrar os datos do teu dispositivo?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancelar"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Aceptar"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Restablecer"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Non se puido configurar o teu dispositivo. Ponte en contacto co departamento de TI."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Este dispositivo xa está configurado"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Non se puido conectar coa wifi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Non se puido utilizar a aplicación de administración debido a un erro da suma de verificación. Ponte en contacto co departamento de TI."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Non se puido descargar a aplicación de administración"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Non se pode utilizar a aplicación de administración. Fáltanlle compoñentes ou está danada. Ponte en contacto co departamento de TI."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Non se puido instalar a aplicación de administración"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"A aplicación de administración non está instalada no teu dispositivo"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Queres deter a configuración?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Estás seguro de que queres deter a configuración?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Non"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Si"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Cancelando..."</string>
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
new file mode 100644
index 0000000..3456e6c
--- /dev/null
+++ b/res/values-hi/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"डिवाइस प्रावधानकर्ता"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ओह!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"अपनी प्रोफ़ाइल सेट करें"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"आपका संगठन इस प्रोफ़ाइल को नियंत्रित करता है और उसे सुरक्षित रखता है. अपने डिवाइस पर सब कुछ आप नियंत्रित करते हैं."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"निम्नलिखित ऐप्स को इस प्रोफ़ाइल को एक्सेस करने की आवश्यकता होगी:"</string>
+    <string name="set_up" msgid="7012862095553564169">"सेट करें"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"आपकी कार्य प्रोफ़ाइल सेट की जा रही है..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"आपके व्यवस्थापक के पास नेटवर्क गतिविधि और आपके डिवाइस के स्थान की जानकारी सहित प्रोफ़ाइल से संबद्ध सेटिंग, कॉर्पोरेट एक्सेस, ऐप्स और डेटा की निगरानी करने और उसे प्रबंधित करने की क्षमता होती है."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"आपके व्यवस्थापक के पास नेटवर्क गतिविधि और आपके डिवाइस के स्थान की जानकारी सहित इस डिवाइस से संबद्ध सेटिंग, कॉर्पोरेट एक्सेस, ऐप्स और डेटा की निगरानी करने और उसे प्रबंधित करने की क्षमता होती है."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"अपने संगठन की गोपनीयता नीतियों सहित अधिक जानकारी के लिए अपने व्यवस्थापक से संपर्क करें."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"और जानें"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"रहने दें"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ठीक"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"कार्य प्रोफ़ाइल"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"आपके डिवाइस पर एक कार्य प्रोफ़ाइल पहले से है. क्या आप उसे निकालना चाहते हैं?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"क्या आप वाकई इस कार्य प्रोफ़ाइल को निकालना चाहते हैं? उसका सभी डेटा निकाल दिया जाएगा."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"निकालें"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"रहने दें"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"सेट अप करना जारी रखने के लिए, आपको अपने डिवाइस को एन्क्रिप्ट करना होगा. इसमें कुछ समय लग सकता है."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"रहने दें"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"एन्‍क्रिप्‍ट करें"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"एन्‍क्रिप्‍शन पूर्ण"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"अपनी कार्य प्रोफ़ाइल को सेट करना जारी रखने के लिए स्‍पर्श करें"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"आपकी कार्य प्रोफ़ाइल सेट नहीं की जा सकी. अपने IT विभाग से संपर्क करें या बाद में पुन: प्रयास करें."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"आपका डिवाइस कार्य प्रोफ़ाइल का समर्थन नहीं करता"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"कार्य प्रोफ़ाइल डिवाइस के स्वामी द्वारा सेट अप की जानी चाहिए"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"आपकी कार्य प्रोफ़ाइल इस लॉन्चर ऐप्स द्वारा समर्थित नहीं है. आपको किसी संगत लॉन्चर पर स्विच करना होगा."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"रहने दें"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ठीक"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"कार्य डिवाइस का उपयोगकर्ता"</string>
+    <string name="setup_device" msgid="6725265673245816366">"अपना डिवाइस सेट करें"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"सेटअप डेटा संसाधित हो रहा है..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"वाई-फ़ाई  से कनेक्ट हो रहा है..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"व्यवस्थापक ऐप्स डाउनलोड हो रहा है..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"व्यवस्थापक ऐप्स इंस्टॉल हो रहा है..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"डिवाइस स्वामी सेट किया जा रहा है..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"सेट अप करना रोकें?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"क्या आप वाकई सेट करना बंद करके अपने डिवाइस का डेटा मिटाना चाहते हैं?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"रहने दें"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ठीक"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"रीसेट करें"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"आपका डिवाइस सेट नहीं किया जा सका. अपने IT विभाग से संपर्क करें."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"यह डिवाइस पहले ही सेट किया जा चुका है"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"वाई-फ़ाई से कनेक्‍ट नहीं हो सका"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"चेकसम त्रुटि के कारण व्यवस्थापक ऐप्स का उपयोग नहीं किया जा सका. अपने IT विभाग से संपर्क करें."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"व्यवस्थापक ऐप्स डाउनलोड नहीं किया जा सका"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"व्यवस्थापक ऐप्स का उपयोग नहीं किया जा सकता. उसमें घटक अनुपलब्ध हैं या वे दूषित हैं. अपने IT विभाग से संपर्क करें."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"व्यवस्थापक ऐप्स इंस्टॉल नहीं किया जा सका"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"व्यवस्थापक ऐप्स आपके डिवाइस पर इंस्टॉल नहीं है"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"सेट करना रोकें?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"क्या आप वाकई सेट किए जाने को रोकना चाहते हैं?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"नहीं"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"हां"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"रोका जा रहा है..."</string>
+</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
new file mode 100644
index 0000000..ef5cd86
--- /dev/null
+++ b/res/values-hr/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Pružatelj usluga na uređaju"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ups!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Postavite svoj profil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Vaša organizacija kontrolira i štiti ovaj profil. Vi kontrolirate sve ostalo na svojem uređaju."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Sljedeća aplikacija morat će pristupiti ovom profilu:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Postavi"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Postavljanje radnog profila..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Vaš administrator može nadzirati postavke, korporacijski pristup, aplikacije i podatke povezane s profilom te upravljati njima, uključujući aktivnosti na mreži i podatke o lokaciji uređaja."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Vaš administrator može nadzirati postavke, korporacijski pristup, aplikacije i podatke povezane s ovim uređajem te njima upravljati, uključujući aktivnosti na mreži i podatke o lokaciji uređaja."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Za više informacija, uključujući pravila o privatnosti organizacije, obratite se administratoru."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Saznajte više"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Odustani"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"U redu"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Radni profil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Već imate radni profil na svom uređaju. Želite li ga ukloniti?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Jeste li sigurni da želite ukloniti ovaj radni profil? Svi će podaci biti izbrisani."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Ukloni"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Odustani"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Da biste nastavili s postavljanjem svog radnog profila, morat ćete šifrirati uređaj. To može potrajati."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Odustani"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Šifriranje"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Enkripcija je dovršena"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Dodirnite da biste nastavili postavljati radni profil"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Postavljanje vašeg radnog profila nije uspjelo. Obratite se IT odjelu ili pokušajte ponovno kasnije."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Vaš uređaj ne podržava radne profile."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Radne profile mora postaviti vlasnik uređaja"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ta aplikacija pokretača ne podržava vaš radni profil. Morat ćete prijeći na kompatibilni pokretač."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Odustani"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"U redu"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Korisnik radnog uređaja"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Postavljanje uređaja"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Obrada podataka o postavljanju..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Povezivanje s Wi-Fi mrežom..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Preuzimanje administratorske aplikacije..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instaliranje administratorske aplikacije..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Postavljanje vlasnika uređaja..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Prekinuti postavljanje?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Jeste li sigurni da želite zaustaviti postavljanje i izbrisati podatke uređaja?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Odustani"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"U redu"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Vrati na zadano"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Postavljanje uređaja nije uspjelo. Obratite se IT odjelu."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Ovaj je uređaj već postavljen"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Spajanje na Wi-Fi nije uspjelo"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Upotreba administratorske aplikacije nije uspjela zbog pogreške kontrolnog zbroja. Obratite se IT odjelu."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Preuzimanje administratorske aplikacije nije uspjelo"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Administratorska aplikacija ne može se upotrebljavati. Nedostaju joj neke komponente ili je oštećena. Obratite se IT odjelu."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Instaliranje administratorske aplikacije nije uspjelo"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Na uređaju nije instalirana administratorska aplikacija"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Želite li prekinuti postavljanje?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Jeste li sigurni da želite prekinuti postavljanje?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ne"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Da"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Otkazivanje..."</string>
+</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
new file mode 100644
index 0000000..dfea90e
--- /dev/null
+++ b/res/values-hu/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Eszközhozzáférés-kezelő"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hoppá!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Profil beállítása"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ezt a profilt szervezete kezeli, és gondoskodik annak biztonságáról. Az eszközön minden mást Ön kezel."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"A következő alkalmazásnak kell hozzáférnie a profilhoz:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Beállítás"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Munkaprofil beállítása…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"A rendszergazda felügyelheti és kezelheti a beállításokat, a vállalatszintű hozzáférést, az alkalmazásokat, illetve a profillal társított adatokat, így például a hálózati tevékenységeket és az eszköz helyadatait."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"A rendszergazda felügyelheti és kezelheti a beállításokat, a vállalatszintű hozzáférést, az alkalmazásokat, illetve az ezzel az eszközzel társított adatokat, beleértve a hálózati tevékenységeket és az eszköz helyadatait."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Vegye fel a kapcsolatot rendszergazdájával, ha további információt szeretne kapni, például szervezetének adatvédelmi irányelveiről."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"További információ"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Mégse"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Munkaprofil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Már van munkaprofilja eszközén. Eltávolítja?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Biztosan eltávolítja a munkaprofilt? Annak minden adata törlődik."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Eltávolítás"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Mégse"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"A munkaprofil beállításának folytatásához titkosítania kell az eszközét. Ez eltarthat egy ideig."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Mégse"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Titkosítás"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"A titkosítás kész"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"A munkaprofil beállításának folytatásához érintse meg"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Munkaprofil beállítása sikertelen. Forduljon az informatikai részleghez, vagy próbálja újra később."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Eszköze nem támogatja a munkaprofilokat"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Munkaprofilokat csak az eszköz tulajdonosa állíthat be"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Az Ön munkahelyi profilját nem támogatja ez az indítóalkalmazás. Egy kompatibilis indítóra kell váltania."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Mégse"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"A munkahelyi eszköz felhasználója"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Eszköz beállítása"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Beállítási adatok feldolgozása…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Kapcsolódás Wi-Fi-hez…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Rendszergazda-alkalmazás letöltése…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Rendszergazda-alkalmazás telepítése…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Az eszköz tulajdonosának beállítása…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Megszakítja a beállítást?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Biztos benne, hogy megszakítja a beállítást, és törli eszköze adatait?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Mégse"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Visszaállítás"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Nem sikerült az eszköz beállítása. Forduljon az informatikai részleghez."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Az eszközt már beállították"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Nem sikerült csatlakozni a Wi-Fi hálózathoz"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Ellenőrzési hiba miatt nem sikerült letölteni a rendszergazda-alkalmazást. Forduljon az informatikai részleghez."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Nem lehetett letölteni a rendszergazdai alkalmazást"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"A rendszergazda-alkalmazás nem használható, mivel egyes elemei hiányoznak vagy sérültek. Forduljon az informatikai részleghez."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Nem lehetett telepíteni a rendszergazdai alkalmazást"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"A rendszergazdai alkalmazás nincs telepítve eszközén"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Megszakítja a beállítást?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Biztosan megszakítja a beállítást?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nem"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Igen"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Megszakítás…"</string>
+</resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..205a3a2
--- /dev/null
+++ b/res/values-hy-rAM/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Սարքի մատակարար"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Վա՜յ:"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Կարգավորեք ձեր պրոֆիլը"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ձեր կազմակերպությունը վերահսկում է այս պրոֆիլը և պաշտպանում է այն: Ձեր սարքի մնացած ամեն ինչը վերահսկում եք ինքներդ:"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Անհրաժեշտ է, որ հետևյալ հավելվածը մուտք գործի այս պրոֆիլ՝"</string>
+    <string name="set_up" msgid="7012862095553564169">"Ստեղծել"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Ձեր աշխատանքային պրոֆիլը կարգավորվում է..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Ձեր ադմինիստրատորը կարող է վերահսկել և կառավարել սարքի կարգավորումները, կորպորատիվ մուտքը, ծրագրերը և պրոֆիլի հետ կապակցված տվյալները, այդ թվում՝ ցանցային գործունեությունը և ձեր սարքի տեղադրության մասին տվյալները:"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Ձեր ադմինիստրատորը կարող է վերահսկել և կառավարել կարգավորումները, կորպորատիվ մուտքը, հավելվածները և այս սարքի հետ կապակցված տվյալները՝ ներառյալ ցանցային գործունեությունը և ձեր սարքերի տեղադրության վերաբերյալ տվյալները:"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Լրացուցիչ տեղեկությունների համար, ինչպես նաև ձեր ընկերության գաղտնիության քաղաքականությանը ծանոթանալու համար դիմեք ձեր ադմինիստրատորին:"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Մանրամասն"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Չեղարկել"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Լավ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Աշխատանքային պրոֆիլ"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Դուք ձեր սարքի վրա արդեն ունեք աշխատանքային պրոֆիլ: Ցանկանում եք հեռացնե՞լ այն:"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Իրո՞ք հեռացնել այս աշխատանքային պրոֆիլը: Նրանում առկա բոլոր տվյալները կջնջվեն:"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Հեռացնել"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Չեղարկել"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Կարգավորումը շարունակելու համար պետք է կոդավորեք ձեր սարքը: Կոդավորումը կարող է որոշ ժամանակ պահանջել:"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Չեղարկել"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Կոդավորել"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Կոդավորումն ավարտվեց"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Հպեք՝ ձեր աշխատանքային պրոֆիլի կարգավորումը շարունակելու համար"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Չհաջողվեց ստեղծել ձեր աշխատանքը պրոֆիլը: Դիմեք ձեր տեխնիկական սպասարկման բաժին կամ փորձեք մի փոքր ուշ:"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Ձեր սարքը չի աջակցում աշխատանքային պրոֆիլներ"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Աշխատանքային պրոֆիլները պետք է կարգավորի սարքի սեփականատերը"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ձեր պրոֆիլը չի աջակցվում այս գործարկչի կողմից: Դուք պետք է փոխարկեք դեպի որևէ աջակցող գործարկիչ:"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Չեղարկել"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Լավ"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Աշխատանքային սարքի օգտագործող"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Կարգավորեք ձեր սարքը"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Կարգավորման տվյալները մշակվում են..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Միանում է Wi-Fi-ին..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Ներբեռնվում է ադմինիստրատորի ծրագիրը..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Տեղադրվում է ադմինիստրատորի ծրագիրը..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Սահմանվում է սարքի սեփականատերը..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Դադարեցնե՞լ կարգավորումը:"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Համոզվա՞ծ եք, որ ցանկանում եք դադարեցնել կարգավորումը և ջնջել սարքի տվյալները:"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Չեղարկել"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Լավ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Վերակայել"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Չհաջողվեց կարգավորել ձեր սարքը: Դիմեք ձեր տեխնիկական սպասարկման բաժին:"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Այս սարքն արդեն կարգաբերված է"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Չհաջողվեց միանալ Wi-Fi-ին"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Հնարավոր չէ օգտագործել ադմինիստրատորի ծրագիրը՝ ստուգման սխալի պատճառով: Դիմեք ձեր տեխնիկական սպասարկման բաժին:"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Չհաջողվեց ներբեռնել ադմինիստրատորի հավելվածը"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Հնարավոր չէ օգտագործել ադմինիստրատորի ծրագիրը: Դրանում բացակայում են բաղադրիչներ կամ այն թերի է: Դիմեք ձեր տեխնիկական սպասարկման բաժին:"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Չհաջողվեց տեղադրել ադմինիստրատորի հավելվածը"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Ադմինիստրատորի հավելվածը տեղադրված չէ ձեր սարքում"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Դադարեցնե՞լ կարգավորումը:"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Դադարեցնե՞լ կարգավորումը:"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ոչ"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Այո"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Չեղարկում..."</string>
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
new file mode 100644
index 0000000..1b2879c
--- /dev/null
+++ b/res/values-in/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Penyedia Perangkat"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ups!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Siapkan profil Anda"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Organisasi Anda mengontrol profil ini dan membuatnya tetap aman. Anda mengontrol hal-hal lain di perangkat."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Aplikasi berikut perlu mengakses profil ini:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Siapkan"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Menyiapkan profil kerja Anda..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administrator Anda memiliki kemampuan untuk memantau dan mengelola setelan, akses perusahaan, aplikasi, dan data yang terkait dengan profil ini, termasuk aktivitas jaringan dan informasi lokasi perangkat Anda."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administrator Anda memiliki kemampuan untuk memantau dan mengelola setelan, akses perusahaan, aplikasi, dan data yang terkait dengan perangkat ini, termasuk aktivitas jaringan dan informasi lokasi perangkat Anda."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Hubungi administrator untuk informasi selengkapnya, termasuk kebijakan privasi organisasi Anda."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Pelajari lebih lanjut"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Batal"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Oke"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profil kerja"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Anda sudah memiliki profil kerja di perangkat. Ingin membuangnya?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Yakin ingin membuang profil kerja ini? Semua datanya akan dihapus."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Buang"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Batal"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Untuk melanjutkan penyiapan profil kerja, Anda perlu mengenkripsi perangkat. Hal ini dapat membutuhkan waktu beberapa lama."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Batal"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Enkripsikan"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Enkripsi selesai"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Sentuh untuk melanjutkan penyiapan profil kerja"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Tidak dapat menyiapkan profil kerja Anda. Hubungi departemen TI atau coba lagi nanti."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Perangkat Anda tidak mendukung profil kerja"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Profil kerja perlu disiapkan oleh pemilik perangkat"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Profil kerja Anda tidak didukung oleh peluncur aplikasi ini. Anda perlu beralih ke peluncur yang kompatibel."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Batal"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Oke"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Pengguna perangkat kerja"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Siapkan perangkat Anda"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Memproses data penyiapan..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Menyambungkan ke Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Mengunduh aplikasi admin..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Memasang aplikasi admin..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Menyetel pemilik perangkat..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Berhenti menyiapkan?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Yakin ingin berhenti menyiapkan dan menghapus data perangkat Anda?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Batal"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Oke"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Setel ulang"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Tidak dapat menyiapkan perangkat. Hubungi departemen TI Anda."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Perangkat ini telah disiapkan"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Tidak dapat tersambung ke Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Tidak dapat menggunakan aplikasi admin karena kesalahan checksum. Hubungi departemen TI Anda."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Tidak dapat mengunduh aplikasi admin"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Tidak dapat menggunakan aplikasi admin. Komponen hilang atau rusak. Hubungi departemen TI Anda."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Tidak dapat memasang aplikasi admin"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Aplikasi admin belum terpasang di perangkat Anda"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Berhenti menyiapkan?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Yakin ingin berhenti menyiapkan?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Tidak"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ya"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Membatalkan..."</string>
+</resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
new file mode 100644
index 0000000..a645b23
--- /dev/null
+++ b/res/values-is-rIS/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Tækjaúthlutun"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Úbbs!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Settu upp snið"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Fyrirtækið þitt stjórnar þessu sniði og heldur því öruggu. Þú hefur stjórn yfir öllu öðru í tækinu."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Eftirfarandi forrit mun þurfa að fá aðgang að þessu sniði:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Setja upp"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Setur upp vinnusniðið þitt..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Kerfisstjórinn þinn getur fylgst með og stjórnað stillingum, fyrirtækjaaðgangi, forritum og gögnum sem tengjast þessu sniði, þar á meðal netnotkun og staðsetningarupplýsingum tækisins."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Kerfisstjórinn þinn getur fylgst með og stjórnað stillingum, fyrirtækjaaðgangi, forritum og gögnum sem tengjast þessu tæki, þar á meðal netnotkun og staðsetningarupplýsingum tækisins."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Hafðu samband við kerfisstjórann til að fá frekari upplýsingar, þar á meðal um persónuverndarstefnu fyrirtækisins."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Frekari upplýsingar"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Hætta við"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Í lagi"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Vinnusnið"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Þú ert þegar með vinnusnið á tækinu þínu. Viltu fjarlægja það?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Ertu viss um að þú viljir fjarlægja þetta vinnusnið? Öllum gögnum þess verður eytt."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Fjarlægja"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Hætta við"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Til að halda uppsetningu vinnusniðsins áfram þarftu að dulkóða tækið þitt. Þetta getur tekið svolitla stund."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Hætta við"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Dulrita"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Dulkóðun lokið"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Snertu til að halda áfram að setja upp vinnusnið"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Ekki var hægt að setja upp vinnusniðið þitt. Hafðu samband við upplýsingatæknisvið eða reyndu aftur síðar."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Tækið þitt styður ekki vinnusnið"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Eigandi tækisins verður að setja vinnusniðið upp"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ræsiforritið styður ekki vinnusniðið þitt. Þú þarft að skipta yfir í ræsiforrit með stuðningi."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Hætta við"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Í lagi"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Notandi vinnutækis"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Uppsetning tækis"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Vinnur úr uppsetningargögnum..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Tengist Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Sækir stjórnforritið..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Setur upp stjórnforritið..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Stillir eiganda tækisins..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Hætta uppsetningu?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Ertu viss um að þú viljir hætta uppsetningu og eyða gögnum tækisins þíns?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Hætta við"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Í lagi"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Endurstilla"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Ekki var hægt að setja upp tækið. Hafðu samband við upplýsingatæknisvið."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Þetta tæki er nú þegar uppsett"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Ekki var hægt að tengjast Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Ekki var hægt að nota stjórnforritið vegna villu í þversummu. Hafðu samband við upplýsingatæknisvið."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Ekki tókst að sækja stjórnunarforritið"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Ekki er hægt að nota stjórnforritið. Það skortir íhluti eða er skemmt. Hafðu samband við upplýsingatæknisvið."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Ekki tókst að setja stjórnunarforritið upp"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Stjórnunarforritið er ekki uppsett á tækinu þínu"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Hætta uppsetningu?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Ertu viss um að þú viljir hætta uppsetningu?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nei"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Já"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Hættir við..."</string>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
new file mode 100644
index 0000000..d40b2a5
--- /dev/null
+++ b/res/values-it/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Provisioner dispositivo"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ops!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configura il tuo profilo"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"La tua organizzazione controlla questo profilo e lo tiene protetto, mentre tu controlli tutto il resto sul dispositivo."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"La seguente app dovrà accedere a questo profilo:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configura"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Impostazione di un profilo di lavoro..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"L\'amministratore ha la possibilità di monitorare e gestire impostazioni, accesso aziendale, app e dati associati al profilo, incluse l\'attività di rete e le informazioni sulla posizione del dispositivo."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"L\'amministratore ha la possibilità di monitorare e gestire impostazioni, accesso aziendale, app e dati associati al dispositivo, incluse l\'attività di rete e le informazioni sulla posizione del dispositivo."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Per ulteriori informazioni, contatta il tuo amministratore e consulta le norme sulla privacy della tua organizzazione."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Ulteriori informazioni"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Annulla"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profilo di lavoro"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Hai già un profilo di lavoro sul dispositivo. Vuoi rimuoverlo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Vuoi rimuovere questo profilo di lavoro? Tutti i dati associati verranno eliminati."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Rimuovi"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Annulla"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Per continuare la configurazione del profilo di lavoro, dovrai crittografare il dispositivo. L\'operazione potrebbe richiedere del tempo."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Annulla"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Crittografa"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Crittografia completa"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Tocca per continuare a configurare il profilo di lavoro"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Impossibile impostare il tuo profilo di lavoro. Contatta il tuo reparto IT oppure riprova in un secondo momento."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Il tuo dispositivo non supporta profili di lavoro"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"I profili di lavoro devono essere configurati dal proprietario del dispositivo"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Il tuo profilo di lavoro non è supportato da questa app Avvio applicazioni. Devi passare a un\'app Avvio applicazioni compatibile."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Annulla"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Utente del dispositivo di lavoro"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurazione del dispositivo"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Elaborazione dati di impostazione..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Connessione a rete Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Download dell\'app dell\'amministratore..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installazione dell\'app dell\'amministratore..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Impostazione del proprietario dispositivo..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Interrompere la configurazione?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Vuoi interrompere l\'impostazione e cancellare i dati del tuo dispositivo?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Annulla"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Reimposta"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Impossibile impostare il dispositivo. Contatta il tuo reparto IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Questo dispositivo è già configurato"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Impossibile connettersi alla rete Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Impossibile utilizzare l\'app dell\'amministratore per un errore di checksum. Contatta il tuo reparto IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Impossibile scaricare l\'app di amministrazione"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Impossibile utilizzare l\'app dell\'amministratore per componenti mancanti o danneggiati. Contatta il tuo reparto IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Impossibile installare l\'app di amministrazione"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"L\'app di amministrazione non è stata installata sul tuo dispositivo"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Interrompere la configurazione?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Vuoi interrompere la configurazione?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"No"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Sì"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Annullamento in corso..."</string>
+</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
new file mode 100644
index 0000000..37d73de
--- /dev/null
+++ b/res/values-iw/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"ספק המכשיר"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"אופס!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"הגדרת הפרופיל שלך"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"הארגון שלך שולט בפרופיל זה ושומר על אבטחתו. אתה שולט בשאר האפשרויות במכשיר."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"האפליקציה הבאה תצטרך לגשת לפרופיל זה:"</string>
+    <string name="set_up" msgid="7012862095553564169">"הגדר"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"מגדיר את פרופיל העבודה שלך..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"מנהל המערכת שלך יכול לבצע מעקב ולנהל הגדרות, גישה ארגונית, אפליקציות ונתונים המשויכים לפרופיל, כולל פעילות ברשת ומידע על מיקום המכשיר."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"מנהל המערכת יכול לבצע מעקב ולנהל הגדרות, גישה ארגונית, אפליקציות ונתונים המשויכים למכשיר זה, כולל פעילות ברשת ומידע על מיקום המכשיר."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"פנה למנהל המערכת לקבלת מידע נוסף, כולל מדיניות הפרטיות של הארגון."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"למידע נוסף"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"בטל"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"אישור"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"פרופיל עבודה"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"כבר יש לך פרופיל עבודה במכשיר. האם ברצונך להסיר אותו?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"האם אתה בטוח שברצונך להסיר פרופיל עבודה זה? כל הנתונים שלו יימחקו."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"הסר"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"בטל"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"כדי להמשיך בהגדרת פרופיל העבודה, יהיה עליך להצפין את המכשיר. פעולה זו עשויה להימשך זמן מה."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"בטל"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"הצפן"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"ההצפנה הושלמה"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"גע כדי להמשיך בהגדרת פרופיל העבודה שלך"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"‏לא ניתן להגדיר את פרופיל העבודה שלך. צור קשר עם מחלקת ה-IT או נסה שוב מאוחר יותר."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"המכשיר שלך אינו תומך בפרופילי עבודה"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"הבעלים של המכשיר צריך להגדיר את פרופילי העבודה"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"פרופיל העבודה שלך אינו נתמך על ידי אפליקציית ההפעלה הזו. יהיה עליך לעבור למפעיל אפליקציות תואם."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"בטל"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"אישור"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"משתמש של מכשיר עבודה"</string>
+    <string name="setup_device" msgid="6725265673245816366">"הגדרת המכשיר שלך"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"מעבד נתונים להגדרה..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"‏מתחבר ל-Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"מוריד את אפליקציית הניהול..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"מתקין את אפליקציית הניהול..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"מגדיר את בעל המכשיר..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"להפסיק את תהליך ההגדרה?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"האם אתה בטוח שברצונך להפסיק את ההגדרה ולמחוק את נתוני המכשיר שלך?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"בטל"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"אישור"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"אפס"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"‏לא ניתן להגדיר את המכשיר. צור קשר עם מחלקת ה-IT שלך."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"מכשיר זה כבר מוגדר"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"‏אין אפשרות להתחבר ל-Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"‏לא ניתן להשתמש באפליקציית הניהול עקב שגיאה בסיכום הביקורת. צור קשר עם מחלקת ה-IT שלך."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"לא ניתן להוריד את אפליקציית הניהול"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"‏לא ניתן להשתמש באפליקציית הניהול. חסרים בה מרכיבים או שהיא פגומה. צור קשר עם מחלקת ה-IT שלך."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"לא ניתן להתקין את אפליקציית הניהול"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"אפליקציית הניהול לא מותקנת במכשיר שלך"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"האם להפסיק את תהליך ההגדרה?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"האם אתה בטוח שברצונך להפסיק את תהליך ההגדרה?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"לא"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"כן"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"מבטל..."</string>
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
new file mode 100644
index 0000000..68ec04c
--- /dev/null
+++ b/res/values-ja/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"エラー"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"プロフィールをセットアップ"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"このプロフィールは組織が管理し、保護します。プロフィール以外の端末上のものはすべて個人で管理します。"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"次のアプリはこのプロフィールにアクセスする必要があります。"</string>
+    <string name="set_up" msgid="7012862095553564169">"セットアップ"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"ワークプロフィールをセットアップしています..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"管理者は、ネットワークアクティビティや端末の位置情報など、プロフィールに関連付けられた設定、コーポレートアクセス、アプリ、データを監視および管理できます。"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"管理者は、ネットワークアクティビティや端末の位置情報など、この端末に関連付けられた設定、コーポレートアクセス、アプリ、データを監視および管理できます。"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"組織のプライバシーポリシーなど詳しくは管理者にお問い合わせください。"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"詳細"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"キャンセル"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"ワークプロフィール"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"端末にワークフロフィールが既にあります。このプロフィールを削除しますか？"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"このワークプロフィールを削除してもよろしいですか？プロフィールのデータはすべて削除されます。"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"削除"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"キャンセル"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"ワークプロフィールのセットアップを続行するには、端末を暗号化する必要があります。これにはしばらく時間がかかる場合があります。"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"キャンセル"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"暗号化"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"暗号化が完了"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"引き続きワークプロフィールをセットアップするにはタップしてください"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"ワークプロフィールをセットアップできませんでした。IT部門にお問い合わせいただくか、しばらくしてからもう一度お試しください。"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"お使いの端末はワークプロフィールをサポートしていません。"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"ワークプロフィールは端末の所有者がセットアップする必要があります"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"このランチャーアプリはワークプロフィールに対応していません。互換性のあるランチャーに切り替える必要があります。"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"キャンセル"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"業務用端末のユーザー"</string>
+    <string name="setup_device" msgid="6725265673245816366">"端末のセットアップ"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"セットアップデータを処理しています..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fiに接続しています..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"管理アプリをダウンロードしています..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"管理アプリをインストールしています..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"端末の所有者を設定しています..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"セットアップを中止しますか？"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"セットアップを停止して端末のデータを消去してもよろしいですか？"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"キャンセル"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"リセット"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"端末をセットアップできませんでした。IT部門にお問い合わせください。"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"この端末は既にセットアップ済みです"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fiに接続できませんでした"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"チェックサムエラーのため管理アプリを使用できませんでした。IT部門にお問い合わせください。"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"管理アプリをダウンロードできませんでした"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"管理アプリを使用できません。このアプリはコンポーネントがないか、破損しています。IT部門にお問い合わせください。"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"管理アプリをインストールできませんでした"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"管理アプリが端末にインストールされていません"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"セットアップを中止しますか？"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"セットアップを中止してもよろしいですか？"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"いいえ"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"はい"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"キャンセル中..."</string>
+</resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..8e1daf6
--- /dev/null
+++ b/res/values-ka-rGE/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"მოწყობილობის დამნერგავი"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"უკაცრავად!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"თქვენი პროფილის დაყენება"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"თქვენი ორგანიზაცია აკონტროლებს ამ პროფილს და მის უსაფრთხოებას. ყველაფერ დანარჩენს კი თქვენ აკონტროლებთ თქვენს მოწყობილობაზე."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"შემდეგ აპს ამ პროფილზე წვდომა დაჭირდება:"</string>
+    <string name="set_up" msgid="7012862095553564169">"დაყენება"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"თქვენი სამუშაო პროფილის დაყენება..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"თქვენი კომპანიის ადმინისტრატორს შეუძლია ამ მოწყობილობასთან ასოცირებული პარამეტრების, კორპორატიული წვდომის, აპებისა და მონაცემების მონიტორინგი და მართვა, მათ შორის, ქსელის აქტივობისა და თქვენი მოწყობილობის მდებარეობის ინფორმაციის."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"თქვენი კომპანიის ადმინისტრატორს შეუძლია ამ მოწყობილობასთან ასოცირებული პარამეტრების, კორპორატიული წვდომის, აპებისა და მონაცემების მონიტორინგი და მართვა, მათ შორის, ქსელის აქტივობისა და თქვენი მოწყობილობის მდებარეობის ინფორმაციის."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"დამატებითი ინფორმაციისათვის, მათ შორის, თქვენი კომპანიის კონფიდენციალურობის დებულებასთან დაკავშირებით, დაუკავშირდით თქვენს ადმინისტრატორს."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"შეიტყვეთ მეტი"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"გაუქმება"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"კარგი"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"სამუშაო პროფილი"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"თქვენ უკვე გაქვთ სამუშაო პროფილი თქვენს მოწყობილობაზე. გსურთ მისი წაშლა?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"დარწმუნებული ხართ, რომ გსურთ ამ სამუშაო პროფილის წაშლა? მისი ყველა მონაცემი წაიშლება."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"ამოშლა"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"გაუქმება"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"თქვენი სამუშაო პროფილის შექმნის გასაგრძელებლად, უნდა დაშიფროთ თქვენი მოწყობილობა. ამას შესაძლოა გარკვეული დრო დასჭირდეს."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"გაუქმება"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"დაშიფრვა"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"დაშიფვრა დასრულდა"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"თქვენი სამუშაო პროფილის დაყენების გასაგრძელებლად"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"თქვენი სამუშაო პროფილი ვერ შეიქმნა. დაუკავშირდით თქვენს IT განყოფილებას ან სცადეთ ისევ."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"თქვენს მოწყობილობას არ აქვს სამუშაო პროფილების მხარდაჭერა"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"სამუშაო პროფილები უნდა შექმნას მოწყობილობის მფლობელმა"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"თქვენი პროფილი ამ გამშვები აპის მიერ მხარდაჭერილი არ არის. მოგიწევთ გადახვიდეთ თავსებად გამშვებზე."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"გაუქმება"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"კარგი"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"სამუშაო მოწყობილობის მომხმარებელი"</string>
+    <string name="setup_device" msgid="6725265673245816366">"თქვენი მოწყობილობის დაყენება"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"დაყენების მონაცმეების დამუშავება..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi-სთან დაკავშირება..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"ადმინისტრატორის აპის ჩამოტვირთვა..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"ადმინისტრატორის აპის ინსტალაცია..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"მოწყობილობის მფლობელის დაყენება..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"დაყენების შეჩერება?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"დარწმუნებული ხართ, რომ გსურთ დაყენების შეჩერება და თქვენი მოწყობილობის მონაცემების ამოშლა?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"გაუქმება"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"კარგი"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"ჩამოყრა"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"თქვენი მოწყობილობის დაყენება ვერ მოხერხდა. დაუკავშირდით თქვენს IT განყოფილებას."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ეს მოწყობილობა უკვე დაყენებულია."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi-თან დაკავშირება ვერ მოხერხდა"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"ადმინისტრატორის აპის გამოყენება ვერ მოხერხდა checksum-ის შეცდომის გამო. დაუკავშირდით თქვენს IT განყოფილებას."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"ადმინისტრატორის აპის ჩამოტვირთვა ვერ მოხერხდა."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"ადმინისტრატორის აპის გამოყენება ვერ მოხერხდა. მას აკლია კომპონენტები, ან დაზიანებულია. დაუკავშირდით თქვენს IT განყოფილებას."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"ადმინისტრატორის აპი ვერ დაინსტალირდა."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"ადმინისტრატორის აპი არ არის დაინსტალირებული თქვენს მოწყობილობაზე."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"გსურთ, მომართვის შეჩერება?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"დარწმუნებული ხართ, რომ მომართვის შეწყვეტა გსურთ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"არა"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"კი"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"უქმდება..."</string>
+</resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
new file mode 100644
index 0000000..4486b12
--- /dev/null
+++ b/res/values-kk-rKZ/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ой!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Профильді орнату"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ұйымыңыз осы профильді басқарады және оны қауіпсіз сақтайды. Сіз құрылғыдағы барлық басқа нәрселерді басқарасыз."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Келесі қолданбаға осы профильге қатынасу қажет болады:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Реттеу"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Жұмыс профиліңіз реттелуде…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Әкімшіде параметрлерді, қауымдық қатынасты, қолданбаларды және профильмен байланысты деректерді, соның ішінде, желілік белсенділікті және құрылғыңыздың орны туралы ақпаратты бақылау және басқару мүмкіндігі бар."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Әкімшіде параметрлерді, қауымдық қатынасты, қолданбаларды және осы құрылғымен байланысты деректерді, соның ішінде, желілік белсенділікті және құрылғының орны туралы ақпаратты бақылау және басқару мүмкіндігі бар."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Қосымша ақпарат, соның ішінде, компанияның құпиялық саясаттары туралы ақпарат алу үшін әкімшіге хабарласыңыз."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Қосымша мәліметтер"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Бас тарту"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Жарайды"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Жұмыс профилі"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Сізде құрылғыңызда жұмыс профилі әлдеқашан бар. Оны жойғыңыз келе ме?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Осы жұмыс профилін жою керек пе? Оның барлық деректері жойылады."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Алып тастау"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Бас тарту"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Жұмыс профиліңізді реттеуді жалғастыру үшін құрылғыңызды шифрлауыңыз керек. Бұл біраз уақыт алуы мүмкін."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Бас тарту"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Шифрлау"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифрлау аяқталды"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Жұмыс профилін орнатуды жалғастыру үшін түртіңіз"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Жұмыс профиліңізді реттеу мүмкін болмады. АТ бөліміне хабарласыңыз немесе әрекетті кейінірек қайталаңыз."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Құрылғыңыз жұмыс профильдерін қолдамайды"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Жұмыс профильдерін құрылғы иесі реттеу керек"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Жұмыс профиліңізді осы қосқыш қолданба қолдамайды. Үйлесімді қосқышқа ауысу керек."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Бас тарту"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Жарайды"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Жұмыс құрылғысының пайдаланушысы"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Құрылғыны реттеу"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Реттеу деректері өңделуде…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi желісіне қосылу орындалуда…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Әкімші қолданбасы жүктелуде…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Әкімші қолданбасы орнатылуда…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Құрылғы иесі орнатылуда…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Реттеуді тоқтату керек пе?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Реттеуді тоқтату және құрылғы деректерін өшіру керек пе?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Бас тарту"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Жарайды"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Қалпына келтіру"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Құрылғыңызды реттеу мүмкін болмады. АТ бөліміне хабарласыңыз."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Бұл құрылғы реттеліп қойылған"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi желісіне қосылу мүмкін болмады"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Бақылау сомасының қатесіне байланысты әкімші қолданбасын пайдалану мүмкін болмады. АТ бөліміне хабарласыңыз."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Әкімші қолданбасын жүктеу мүмкін болмады"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Әкімші қолданбасын пайдалану мүмкін емес. Оның құрамдастары жетіспейді немесе ол бүлінген. АТ бөліміне хабарласыңыз."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Әкімші қолданбасын орнату мүмкін болмады"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Құрылғыңызда әкімші қолданбасы орнатылмаған"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Реттеуді тоқтату керек пе?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Реттеуді тоқтату керек пе?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Жоқ"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Иә"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Бас тартылуда…"</string>
+</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..09081ff
--- /dev/null
+++ b/res/values-km-rKH/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"តម្រូវ​ការ​ឧបករណ៍"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"អូ​!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"រៀបចំ​ប្រវត្តិរូប​របស់​អ្នក"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"ស្ថាប័ន​របស់​អ្នកពិនិត្យ​ប្រវត្តិរូប​នេះ ហើយ​រក្សាទុក​វា​​ដោយ​សុវត្ថិភាព។ អ្នក​ពិនិត្យ​អ្វីៗ​ផ្សេង​ទៀត​នៅ​លើ​ឧបករណ៍​របស់​អ្នក។"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"កម្មវិធី​ខាង​ក្រោម​​នឹង​ត្រូវ​ចូល​ដំណើរការ​ប្រវត្តិរូប​របស់​អ្នក៖"</string>
+    <string name="set_up" msgid="7012862095553564169">"រៀបចំ"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"កំពុង​រៀបចំ​ប្រវត្តិរូប​ការងារ​របស់​អ្នក..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"អ្នក​គ្រប់គ្រង​របស់​អ្នកមាន​លទ្ធភាព​តាមដាន និង​គ្រប់គ្រង​ការ​​កំណត់​, ការ​ចូល​ដំណើរការ​​រួមគ្នា​, កម្មវិធី និង​ទិន្នន័យ​បាន​ភ្ជាប់​ជា​មួយ​ប្រវត្តិរូប​រួមមាន សកម្មភាព​បណ្ដាញ និង​ព័ត៌មាន​ទីតាំង​ឧបករណ៍​របស់​អ្នក។"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"អ្នក​គ្រប់គ្រង​របស់​អ្នក​អាច​ពិនិត្យ និង​គ្រប់គ្រង​ការ​កំណត់ កា​រ​ចូល​ដំណើរការ​រួមគ្នា កម្មវិធី និង​ទិន្នន័យ​ពាក់ព័ន្ធ​ជាមួយ​ឧបករណ៍​នេះ រួមមាន​សកម្មភាព​បណ្ដាញ និង​ព័ត៌មាន​ទីតាំង​ឧបករណ៍​របស់​អ្នក។"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"ទាក់ទង​អ្នក​គ្រប់គ្រង​របស់​អ្នក​សម្រាប់​ព័ត៌មាន​បន្ថែម រួមមាន​គោលនយោបាយ​ភាព​ឯកជន​ស្ថាប័ន​​របស់​អ្នក។"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"ស្វែងយល់​បន្ថែម"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"បោះបង់"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"យល់ព្រម"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"ប្រវត្តិរូប​ការងារ"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"អ្នក​មាន​ប្រវត្តិរូប​ការងារ​នៅ​លើ​ឧបករណ៍​របស់​អ្នក​រួច​ហើយ។ តើ​អ្នក​ចង់​លុប​វា​ចេញ​ឬ?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"តើ​អ្នក​ពិតជា​ចង់​លុប​ប្រវត្តិរូប​ការងារ​នេះឬ? ទិន្នន័យ​ទាំងអស់​របស់​វា​នឹង​ត្រូវ​បាន​លុប។"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"លុបចេញ"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"បោះបង់"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"ដើម្បី​បន្ត​រៀបចំ​ប្រវត្តិរូប​ការងារ​របស់​អ្នក អ្នក​ត្រូវ​ដាក់​លេខ​កូដ​ឧបករណ៍​របស់​អ្នក។ វា​អាច​ប្រើ​ពេល​មួយ​រយៈ។"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"បោះបង់"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"ដាក់​លេខ​កូដ"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"ការ​ដាក់​លេខ​កូដ​បាន​បញ្ចប់"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"ប៉ះ​ដើម្បី​បន្ត​ការ​រៀបចំ​ប្រវត្តិរូប​ការងារ​របស់​អ្នក"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"មិន​អាច​រៀបចំ​ប្រវត្តិរូប​ការងារ​របស់​អ្នក។ ទាក់ទង​ផ្នែក​បច្ចេកវិទ្យា​ព័ត៌មាន​របស់​អ្នក ឬ​ព្យាយាម​ម្ដងទៀត​ពេល​ក្រោយ។"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"ឧបករណ៍​របស់​អ្នក​មិន​គាំទ្រ​ប្រវត្តិរូប​ការងារ។"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"ប្រវត្តិរូប​ការងារ​ចាំបាច់​ត្រូវ​តែ​បាន​រៀបចំ​​ដោយ​ម្ចាស់​ឧបករណ៍"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"ប្រវត្តិរូប​ការងារ​របស់​អ្នក​មិន​ត្រូវ​បាន​គាំទ្រ​ដោយ​កម្មវិធី​ launcher នេះ​នៅ​ឡើយ​ទេ។ អ្នក​នឹង​ត្រូវ​ប្ដូរ​ទៅ launcher ដែល​ត្រូវ​គ្នា។"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"បោះបង់"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"យល់ព្រម"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"អ្នកប្រើ​ឧបករណ៍​ការងារ"</string>
+    <string name="setup_device" msgid="6725265673245816366">"រៀបចំ​ឧបករណ៍​របស់​អ្នក"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"កំពុង​ដំណើរការ​រៀបចំ​ទិន្នន័យ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"កំពុង​ភ្ជាប់​វ៉ាយហ្វាយ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"កំពុង​ទាញ​យក​កម្មវិធី​របស់​អ្នក​គ្រប់គ្រង..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"កំពុង​ដំឡើង​កម្មវិធី​របស់​អ្នកគ្រប់គ្រង..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"កំពុង​រៀបចំ​ម្ចាស់​ឧបករណ៍..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"បញ្ឈប់​ការ​រៀបចំ?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"តើ​អ្នក​ប្រាកដ​ជា​ចង់​បញ្ឈប់​ការ​រៀបចំ ហើយ​លុប​ទិន្នន័យ​ក្នុង​ឧបករណ៍​របស់​អ្នក?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"បោះបង់"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"យល់ព្រម"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"កំណត់​ឡើងវិញ"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"មិន​អាច​រៀបចំ​ឧបករណ៍​របស់​អ្នក។ ទាក់ទង​ផ្នែក​បច្ចេកវិទ្យា​ព័ត៌មាន​របស់​អ្នក។"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ឧបករណ៍​នេះ​ត្រូវ​បាន​រៀបចំ​រួចហើយ"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"មិន​​អាច​តភ្ជាប់​វ៉ាយហ្វាយ"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"មិន​អាច​ប្រើ​កម្មវិធី​របស់​អ្នកគ្រប់គ្រង ដោយសារ​កំហុស​​ឆែកសាំ​។​ ទាក់ទង​ផ្នែក​បច្ចេកវិទ្យា​ព័ត៌មាន​របស់​អ្នក។"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"មិន​អាច​ទាញ​យក​កម្មវិធី​គ្រប់គ្រង"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"មិន​អាច​ប្រើ​កម្មវិធី​របស់​អ្នក​គ្រប់គ្រង។ វា​បាត់​សមាសធាតុ ឬ​ក៏​ខូច។ ទាក់ទង​ផ្នែក​បច្ចេកវិទ្យា​ព័ត៌មាន​របស់​អ្នក។"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"មិន​អាច​ដំឡើង​កម្មវិធី​គ្រប់គ្រង"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"កម្មវិធី​គ្រប់គ្រង​មិន​ត្រូវ​បាន​ដំឡើង​នៅ​លើ​ឧបករណ៍​របស់​អ្នក"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"បញ្ឈប់​ការ​រៀបចំ?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"តើ​អ្នក​ប្រាកដ​ជា​ចង់​បញ្ឈប់​ការ​រៀបចំ​?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"ទេ"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"បាទ/ចាស"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"កំពុង​​បោះបង់..."</string>
+</resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
new file mode 100644
index 0000000..a05f044
--- /dev/null
+++ b/res/values-kn-rIN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"ಸಾಧನ ಪೂರೈಕೆದಾರ"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ಓಹ್!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"ಈ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ನಿಯಂತ್ರಿಸುತ್ತದೆ ಹಾಗೂ ಅದನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕಾಪಾಡುತ್ತದೆ. ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದನ್ನೂ ನೀವು ನಿಯಂತ್ರಿಸಬಹುದು."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"ಕೆಳಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಈ ಪ್ರೊಫೈಲ್ ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿದೆ:"</string>
+    <string name="set_up" msgid="7012862095553564169">"ಹೊಂದಿಸು"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳ ಮಾಹಿತಿಯೂ ಒಳಗೊಂಡಂತೆ, ಸೆಟ್ಟಿಂಗ್‌ಗಳು, ಕಾರ್ಪೊರೇಟ್ ಪ್ರವೇಶ, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಹಾಗೂ ಈ ಪ್ರೊಫೈಲ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಡೇಟಾ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿರುತ್ತಾರೆ."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು, ಕಾರ್ಪೊರೇಟ್ ಪ್ರವೇಶ, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಹಾಗೂ ಈ ಸಾಧನದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಡೇಟಾವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಗೌಪ್ಯತೆ ನೀತಿಗಳನ್ನು ಒಳಗೊಂಡಂತೆ, ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"ರದ್ದುಮಾಡು"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ಸರಿ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ಹೊಂದಿರುವಿರಿ. ಅದನ್ನು ನೀವು ತೆಗೆದುಹಾಕಲು ಬಯಸುವಿರಾ?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"ಈ ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಅದರ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"ರದ್ದುಮಾಡು"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ ಹೊಂದಿಸುವುದನ್ನು ಮುಂದುವರಿಸಲು, ನಿಮ್ಮ ಸಾಧನವನ್ನು ನೀವು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಬೇಕಾದ ಅಗತ್ಯವಿದೆ. ಇದು ಸ್ವಲ್ಪ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"ರದ್ದುಮಾಡು"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"ಎನ್‌ಕ್ರಿಪ್ಟ್‌‌ ಮಾಡಿ"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಪೂರ್ಣಗೊಂಡಿದೆ"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಹೊಂದಿಸುವುದನ್ನು ಮುಂದುವರಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ IT ವಿಭಾಗವನ್ನು ಸಂಪರ್ಕಿಸಿ ಅಥವಾ ನಂತರ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"ನಿಮ್ಮ ಸಾಧನವು ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಸಾಧನದ ಮಾಲೀಕರಿಂದ ಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ ಈ ಲಾಂಚರ್‌‌ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ನೀವು, ಹೊಂದಿಕೆಯಾಗುವಂತಹ ಲಾಂಚರ್‌‌ಗೆ ಬದಲಾಯಿಸುವ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"ರದ್ದುಮಾಡು"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ಸರಿ"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"ಕೆಲಸದ ಸಾಧನದ ಬಳಕೆದಾರರು"</string>
+    <string name="setup_device" msgid="6725265673245816366">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹೊಂದಿಸಿ"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"ಸೆಟಪ್ ಡೇಟಾ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"ಸಾಧನ ಮಾಲೀಕರನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"ಹೊಂದಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದೇ?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"ನೀವು ಹೊಂದಾಣಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಲು ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ಡೇಟಾವನ್ನು ಅಳಿಸಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"ರದ್ದುಮಾಡು"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ಸರಿ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"ಮರುಹೊಂದಿಸು"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ IT ವಿಭಾಗವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ಈ ಸಾಧನವನ್ನು ಈಗಾಗಲೇ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"ಚೆಕ್‌ಸಮ್ ದೋಷ ಎದುರಾಗಿರುವ ಕಾರಣ ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ IT ವಿಭಾಗವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದರಲ್ಲಿ ಕಾಂಪೊನೆಂಟ್‌ಗಳು ಕಾಣೆಯಾಗಿವೆ ಅಥವಾ ದೋಷಪೂರಿತವಾಗಿವೆ, ನಿಮ್ಮ IT ವಿಭಾಗವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್‌ ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"ಹೊಂದಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದೇ?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"ಹೊಂದಿಸುವುದನ್ನು ನೀವು ನಿಲ್ಲಿಸಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"ಇಲ್ಲ"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"ಹೌದು"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."</string>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
new file mode 100644
index 0000000..44f6f47
--- /dev/null
+++ b/res/values-ko/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"기기 공급자"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"이런!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"프로필 설정"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"기기에서 프로필에 대한 제어와 보안 유지는 조직에서 담당하고, 나머지는 내가 관리합니다."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"이 프로필에 액세스해야 하는 앱:"</string>
+    <string name="set_up" msgid="7012862095553564169">"설정"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"직장 프로필 설정 중..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"관리자는 네트워크 활동 및 기기의 위치 정보를 비롯하여 프로필과 연결된 데이터, 설정, 기업 액세스, 앱을 모니터링하고 관리할 수 있습니다."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"관리자는 설정, 기업 액세스, 앱, 이 기기와 관련된 데이터(예: 네트워크 활동, 기기의 위치 정보)를 모니터링하고 관리할 수 있습니다."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"조직의 개인정보취급방침을 비롯한 자세한 내용은 관리자에게 문의하세요."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"자세히 알아보기"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"취소"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"확인"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"직장 프로필"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"기기에 이미 직장 프로필이 있습니다. 삭제하시겠습니까?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"직장 프로필을 삭제하시겠습니까? 데이터가 모두 삭제됩니다."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"삭제"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"취소"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"직장 프로필 설정을 계속하려면 기기를 암호화해야 합니다. 이 작업은 다소 시간이 걸릴 수 있습니다."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"취소"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"암호화"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"암호화 완료"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"계속해서 직장 프로필을 설정하려면 터치하세요."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"직장 프로필을 설정할 수 없습니다. IT 부서에 문의하거나 나중에 다시 시도해 주시기 바랍니다."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"직장 프로필을 지원하지 않는 기기입니다."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"직장 프로필은 기기 소유자만 설정할 수 있습니다."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"이 런처 앱은 직장 프로필을 지원하지 않습니다. 호환되는 런처로 전환해야 합니다."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"취소"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"확인"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"업무 기기의 사용자"</string>
+    <string name="setup_device" msgid="6725265673245816366">"기기 설정"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"설정 데이터 처리 중..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi에 연결 중..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"관리 앱 다운로드 중..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"관리 앱 설치 중..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"기기 소유자 설정 중..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"설정을 중지하시겠습니까?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"설정을 중단하고 기기의 데이터를 삭제하시겠습니까?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"취소"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"확인"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"초기화"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"기기를 설정할 수 없습니다. IT 부서에 문의해 주시기 바랍니다."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"기기가 이미 설정되었습니다."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi에 연결할 수 없습니다."</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"체크섬 오류로 인해 관리 앱을 사용할 수 없습니다. IT 부서에 문의해 주시기 바랍니다."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"관리 앱을 다운로드할 수 없습니다."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"관리 앱을 사용할 수 없습니다. 구성요소가 없거나 손상되었습니다. IT 부서에 문의해 주시기 바랍니다."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"관리 앱을 설치할 수 없습니다."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"기기에 관리 앱이 설치되어 있지 않습니다."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"설정을 중지하시겠습니까?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"설정을 중지하시겠습니까?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"아니요"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"예"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"취소 중..."</string>
+</resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
new file mode 100644
index 0000000..0d3fcef
--- /dev/null
+++ b/res/values-ky-rKG/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Түзмөктү Камсыздоочу"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ой!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Профилиңизди орнотуңуз"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ишканаңыз бул профилди көзөмөлдөп, коопсуздугун камсыз кылып турат. Түзмөгүңүздөгү калган нерсенин бардыгын өзүңүз көзөмөлдөйсүз."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Төмөнкү колдонмо бул профилди колдонушу керек."</string>
+    <string name="set_up" msgid="7012862095553564169">"Тууралоо"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Жумуш профилиңиз негизделүүдө…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Администраторуңуз жөндөөлөрдү, корпоративдик колдонуу мүмкүнчүлүгүн, колдонмолорду жана профилге байланыштуу дайындарды, ошондой эле тармактагы аракеттерди жана түзмөгүңүздүн жайгашкан жер маалыматын көзөмөлдөп жана башкара алат."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Администраторуңуз жөндөөлөрдү, корпоративдик кирүү мүмкүнчүлүгүн, колдонмолорду жана ушул түзмөкө байланыштуу дайындарды, ошондой эле тармактагы аракеттер менен түзмөгүңүздүн жайгашкан жери тууралуу маалыматты көзөмөлдөп, башкара алат."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Көбүрөөк маалымат жана ишканаңыздын купуялуулук саясаттарын билүү үчүн администраторуңузга кайрылыңыз."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Көбүрөөк билүү"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Жокко чыгаруу"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Жумуш профили"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Түзмөгүңүздө мурунтан эле жумуш профили бар. Аны алып саласызбы?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Бул жумуш профилин чын эле алып салгыңыз келеби? Андагы бардык дайындар жок кылынат."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Алып салуу"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Жокко чыгаруу"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Жумуш профилиңизди орнотууну улантуу үчүн, түзмөгүңүздү шифрлешиңиз керек. Буга бир аз убакыт талап кылынышы мүмкүн."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Жокко чыгаруу"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Шифрлөө"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифрлөө аяктады"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Жумуш профилиңизди орнотууну улантуу үчүн тийип коюңуз"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Жумуш профилиңиз негизделген жок. IT бөлүмүңүзгө кайрылыңыз же бир аздан кийин дагы аракет кылып көрүңүз."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Түзмөгүңүздө жумуш профилдери колдоого алынбайт"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Жумуш профилдерин түзмөктүн ээси орнотушу керек"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Жумуш профилиңизде бул ишке киргизгич колдонмосу колдоого албайт. Дал келе турган жүргүзгүчкө которулушуңуз керек."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Жокко чыгаруу"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Жарайт"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Жумуш түзмөгүн колдонуучу"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Түзмөгүңүздү негиздөө"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Негиздөө дайындары иштетилүүдө…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi\'га туташууда…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Администратор колдонмосу жүктөлүп алынууда…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Администратор колдонмосу орнотулууда…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Түзмөк ээси коюлууда…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Орнотуу токтотулсунбу?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Негиздөөнү токтотуп, түзмөгүңүздүн дайындарын өчүрүп салгыңыз келеби?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Жокко чыгаруу"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Баштапкы абалга келтирүү"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Түзмөгүңүз негизделген жок. IT бөлүмүңүзгө кайрылыңыз."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Бул түзмөк мурунтан эле түзүлгөн"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi\'га туташкан жок"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Жыйынтыктоочу сумма катасынан улам, администратордун колдонмосу иштеген жок. IT бөлүмүңүзгө кайрылыңыз."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Администратор колдонмосу жүктөлүп алынган жок"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Администратор колдонмосу иштебей жатат. Анын айрым курамдык бөлүктөрү жок же бузук. IT бөлүмүңүзгө кайрылыңыз."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Администратор колдонмосу орнотулган жок"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Түзмөгүңүздө администратор колдонмосу орнотулган эмес"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Орнотуу токтотулсунбу?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Орнотуу чын эле токтотулсунбу?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Жок"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ооба"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Жокко чыгарылууда…"</string>
+</resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
new file mode 100644
index 0000000..058bc94
--- /dev/null
+++ b/res/values-land/dimens.xml
@@ -0,0 +1,21 @@
+<?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>
+    <dimen name="main_text_padding_left_right">48dp</dimen>
+</resources>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
new file mode 100644
index 0000000..00f4ae8
--- /dev/null
+++ b/res/values-land/styles.xml
@@ -0,0 +1,30 @@
+<?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>
+
+    <style name="SetupWorkSpaceTheme" parent="@android:style/Theme.Material" >
+      <item name="android:windowActionBar">false</item>
+      <item name="android:windowNoTitle">true</item>
+      <item name="android:colorPrimary">@color/teal</item>
+      <item name="android:colorAccent">@color/accent</item>
+      <!-- Match the status bar to the header rather than the image, only for landscape, small -->
+      <item name="android:colorPrimaryDark">@color/accent</item>
+    </style>
+
+</resources>
diff --git a/res/values-large/dimens.xml b/res/values-large/dimens.xml
new file mode 100644
index 0000000..5a6a7f7
--- /dev/null
+++ b/res/values-large/dimens.xml
@@ -0,0 +1,33 @@
+<?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>
+
+    <!-- Main text -->
+    <dimen name="main_text_padding_left_right">40dp</dimen>
+    <dimen name="main_text_padding_top">16dp</dimen>
+    <dimen name="main_text_margins_left_right">64dp</dimen>
+
+    <!-- Title -->
+    <dimen name="title_height">80dp</dimen>
+    <dimen name="title_text_size">32sp</dimen>
+    <dimen name="title_padding">64dp</dimen>
+
+    <!-- This is approximatively 128dp - @dimen/status_bar_height -->
+    <dimen name="main_text_margin">103dp</dimen>
+</resources>
diff --git a/res/values-large/styles.xml b/res/values-large/styles.xml
new file mode 100644
index 0000000..a60f61c
--- /dev/null
+++ b/res/values-large/styles.xml
@@ -0,0 +1,47 @@
+<?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>
+
+    <!-- Same as the one in ../values/styles.xml -->
+    <style name="SetupWorkSpaceTheme" parent="@android:style/Theme.Material" >
+      <item name="android:windowActionBar">false</item>
+      <item name="android:windowNoTitle">true</item>
+      <item name="android:colorPrimary">@color/teal</item>
+      <item name="android:colorAccent">@color/dark_turquoise</item>
+      <item name="android:colorPrimaryDark">@color/light_teal</item>
+    </style>
+
+    <style name="HeaderImage">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">left</item>
+        <item name="android:layout_gravity">left</item>
+        <item name="android:scaleType">fitStart</item>
+        <item name="android:src">@drawable/setup_illustration</item>
+    </style>
+
+    <style name="HeaderImageTile">
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">fill_parent</item>
+        <item name="android:gravity">left</item>
+        <item name="android:scaleType">fitXY</item>
+        <item name="android:src">@drawable/setup_illustration_right</item>
+    </style>
+
+</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..3905c22
--- /dev/null
+++ b/res/values-lo-rLA/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ອຸຍ!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"​ຕັ້ງ​ຄ່າ​ໂປ​ຣ​ໄຟລ໌​ຂອງ​ທ່ານ"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"ອົງ​ກອນ​ຂອງ​ທ່ານ​ຄວບ​ຄຸມໂປຣ​ໄຟລ໌​ນີ້​ ແລະ​​ເຮັດ​ໃຫ້​ມັນ​ປອດ​ໄພ. ຢ່າງ​ອື່ນໆ​ໃນ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ແມ່ນ​ທ່ານ​​ເປັນ​ຜູ່ຄວບ​ຄຸມ​."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"ແອັບຯ​ຕໍ່​ໄປ​ນີ້​ຈະຕ້ອງ​ການ​ເຂົ້າ​ເຖິງ​ໂປຣ​ໄຟລ໌​ນີ້:"</string>
+    <string name="set_up" msgid="7012862095553564169">"ຕັ້ງຄ່າ"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"ກຳ​ລັງ​ຕັ້ງ​ຄ່າ​​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຂອງ​ທ່ານ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​​ຂອງ​ທ່ານ​ແມ່ນ​ມີ​ຄວາມ​ສາ​ມາດ​ໃນ​ການ​ຕິດ​ຕາມ ແລະ​ຈັດ​ການ​ກ​ານ​ຕັ້ງ​ຄ່າ, ​ການ​ເຂົ້າ​ເຖິງ​ໃນ​ອົງ​ກອນ, ​ແອັບຯ ແລະ​ຂໍ້​ມູນ​ທີ່​ເຊື່ອມ​ໂຍງ​ກັບ​ໂປຣ​ໄຟລ໌​ນີ້​ໄດ້, ຮວມ​ເຖິງ​ການ​ເຄື່ອນ​ໄຫວ​ໃນ​ລະ​ບົບ​ເຄືອ​ຂ່າຍ ແລະ​ຂໍ້​ມູນ​ສະ​ຖານ​ທີ່​ຂອງ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ​ແມ່ນ​ມີ​ຄວາມ​ສາ​ມາດ​ໃນ​ການ​ຕິດ​ຕາມ ແລະຈັດ​ການ​ການ​ຕັ້ງ​ຄ່າ, ​ການ​ເຂົ້າ​ເຖິງ​ໃນ​ອົງ​ກອນ, ​ແອັບຯ ​ແລະຂໍ້​ມູນ​ທີ່​ກ່ຽວ​ຂ້ອງ​ກັບ​ອຸ​ປະ​ກອນ​ນີ້​ໄດ້, ຮວມ​ເຖິງ​ການ​ເຄື່ອນ​ໄຫວ​ໃນ​ລະ​ບົບ​ເຄືອ​ຂ່າຍ ແລະຂໍ້​ມູນ​ສະ​ຖານ​ທີ່​ຂອງ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"ໃຫ້​ຕິດ​ຕໍ່​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ​ສຳ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ, ຮວມ​ໄປ​ເຖິງ​ນະ​ໂຍ​ບາຍ​ຄວາມ​ເປັນ​ສ່ວນ​ໂຕ​ຂອງ​ອົງ​ກອນ​ຂອງ​ທ່ານ."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"ສຶກ​ສາ​ເພີ່ມ​ເຕີມ"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"​ຍົກ​ເລີກ"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ຕົກລົງ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"ທ່ານ​ມີ​ໂ​ປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ໃນ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຢູ່​ແລ້ວ. ທ່ານ​​ຕ້ອງ​ການ​ລຶບ​ອອກບໍ່?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"​ທ່ານ​ແນ່​ໃຈ​ບໍ່​ວ່າ​​ຕ້ອງ​ການ​ລຶບ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ນີ້​ອອກ? ຂໍ້​ມູ​ນ​ທັງ​ໝົດ​ຂອງ​ມັນ​ຈະ​ຖືກ​ລຶບ​ອອກ."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"ລຶບ"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"​ຍົກ​ເລີກ"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"​ເພື່ອ​ສືບ​ຕໍ່​ຕັ້ງ​ຄ່າ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຂອງ​ທ່ານ, ທ່ານ​ຈະ​ຕ້ອງ​ເຂົ້າ​ລະ​ຫັດ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ກ່ອນ. ຂັ້ນ​ຕອນ​ນີ້​ຈະ​ໃຊ້​ເວ​ລາ​ໄລ​ຍະ​ນຶ່ງ."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"​ຍົກ​ເລີກ"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"​ເຂົ້າ​ລະ​ຫັດ"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"ການ​ເຂົ້າ​ລະ​ຫັດ​ສຳ​ເລັດ​ແລ້ວ"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"ແຕະ​ເພື່ອ​ສືບ​ຕໍ່​ການ​ຕັ້ງ​ຄ່າ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຂອງ​ທ່ານ."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"ບໍ່​ສາ​ມາດ​ຕັ້ງ​ຄ່າ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ໄດ້. ກະ​ລຸ​ນາ​ຕິດ​ຕໍ່​ພະ​ແນກ​ໄອ​ທີ​ຂອງ​ທ່ານ ຫຼື​ລອງ​ໃໝ່​ໃນ​ພາຍຫຼັງ."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານບໍ່​ຮອງ​ຮັບ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"​ເຈົ້າ​ຂອງ​ອຸ​ປະ​ກອນ​ຕ້ອງ​ຕັ້ງ​ຄ່າ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ​ຂອງ​ທ່ານບໍ່​ຮອງ​ຮັບ​ແອັບຯ Launcher ນີ້. ທ່ານ​ຈະ​ຕ້ອງ​ສະ​ລັບ​ໄປ​ໃຊ້ Launcher ທີ່​ໃຊ້​ຮ່ວມ​ກັນ​ໄດ້."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"​ຍົກ​ເລີກ"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ຕົກລົງ"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"​​ຜູ່​ໃຊ້​ອຸ​ປະ​ກອນ​ບ່ອນ​ເຮັດ​ວຽກ"</string>
+    <string name="setup_device" msgid="6725265673245816366">"ຕັ້ງ​ຄ່າ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"ກຳ​ລັງ​ປະ​ມວນ​ຜົນ​ຂໍ້​ມູນ​ການ​ຕັ້ງ​ຄ່າ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"ກຳ​ລັງ​ເຊື່ອມ​ຕໍ່​ຫາ Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"ກຳ​ລັງ​ດາວ​ໂຫລດ​ແອັບຯ​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"ກຳ​ລັງ​ຕິດ​ຕັ້ງ​ແອັບຯ​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"ກຳ​ລັງ​ຕັ້ງ​ຄ່າ​ເຈົ້າ​ຂອງ​ອຸ​ປະ​ກອນ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"ຢຸດ​ການ​ຕັ້ງ​ຄ່າ​ບໍ??"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"ທ່ານ​ແນ່​ໃຈ​ບໍ່​ວ່າ​ຕ້ອງ​ການ​ຢຸດ​ການ​ຕັ້ງ​ຄ່າ ແລະ​ລຶບ​ຂໍ້​ມູນ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ອອກ?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"​ຍົກ​ເລີກ"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ຕົກລົງ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"ຣີເຊັດ"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"​ບໍ່​ສາ​ມາດ​ຕັ້ງ​ຄ່າ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ໄດ້. ໃຫ້​ຕິດ​ຕໍ່​​ພະ​ແນກ​ໄອ​ທີ​ຂອງ​ທ່ານ."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"​ອຸ​ປະ​ກອນ​ນີ້​ຖືກ​ຕັ້ງ​ຄ່າ​ໄວ້​ແລ້ວ"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"ບໍ່​ສາ​ມາດ​ເຊື່ອມ​ຕໍ່ Wi-Fi ໄດ້"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"ບໍ່​ສາ​ມາດ​​ໃຊ້​ແອັບຯ​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ໄດ້​ເນື່ອງ​ຈາກ checksum ຜິດ​ພາດ. ໃຫ້​ຕິດ​ຕໍ່​ພະ​ແນກ​ໄອ​ທີ​ຂອງ​ທ່ານ."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"ບໍ່​ສາ​ມາດ​ດາວ​ໂຫລດ​ແອັບຯ​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ໄດ້"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"ບໍ່​ສາ​ມາດ​ໃຊ້​ແອັບຯ​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ໄດ້. ມັນ​ຂາດ​ອົງ​ປະ​ກອບທີ່​ຕ້ອງ​ໃຊ້ ຫຼື​​ໄຟລ໌​ມີ​ບັນ​ຫາ. ໃຫ້​ຕິດ​ຕໍ່​ພະ​ແນກ​ຂອງ​ທ່ານ."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"ບໍ່​ສາ​ມາດ​ຕິດ​ຕັ້ງ​ແອັບຯ​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ໄດ້"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"​​ບໍ່​ມີ​ແອັບຯ​ຜູ່​ເບ​ິ່ງ​ແຍງ​ລະ​ບົບ​ຕິດ​ຕັ້ງ​ໃນ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"ຢຸດ​ການ​ຕິດ​ຕັ້ງ​ຫຼື​ບໍ່?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"​ທ່ານ​ແນ່​ໃຈ​ບໍ່​ວ່າ​ທ່ານ​ຕ້ອງ​ການ​ຢຸດ​ການ​ຕິດ​ຕັ້ງ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"ບໍ່"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"​ແມ່ນ​ແລ້ວ"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"​ກຳ​ລັງ​ຍົກ​ເລີກ..."</string>
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
new file mode 100644
index 0000000..959f877
--- /dev/null
+++ b/res/values-lt/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oi!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Nustatykite profilį"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Jūsų organizacija valdo šį profilį ir užtikrina jo saugumą. Visa kita savo įrenginyje valdote jūs."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Naudojant toliau nurodytą programą, reikės prieigos prie šio profilio:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Nustatyti"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Nustatomas darbo profilis..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administratorius gali stebėti ir tvarkyti nustatymus, įmonės prieigą, programas ir su šiuo profiliu susietus duomenis, įskaitant tinklo veiklą ir įrenginio vietos informaciją."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administratorius gali stebėti ir tvarkyti nustatymus, įmonės prieigą, programas ir su šiuo įrenginiu susietus duomenis, įskaitant tinklo veiklą ir įrenginio vietovės informaciją."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Jei reikia daugiau informacijos, įskaitant organizacijos privatumo politiką, susisiekite su administratoriumi."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Sužinokite daugiau"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Atšaukti"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Gerai"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Darbo profilis"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Jau turite darbo profilį įrenginyje. Ar norite jį pašalinti?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Ar tikrai norite pašalinti šį darbo profilį? Visi jo duomenys bus ištrinti."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Pašalinti"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Atšaukti"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Jei norite tęsti darbo profilio sąranką, turite šifruoti įrenginį. Tai gali šiek tiek užtrukti."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Atšaukti"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Šifruoti"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Šifruotė baigta"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Palieskite, kad galėtumėte tęsti darbo profilio nustatymą"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Nepavyko nustatyti jūsų darbo profilio. Susisiekite su IT skyriumi arba vėliau bandykite dar kartą."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Įrenginys nepalaiko darbo profilių"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Darbo profilius turi nustatyti įrenginio savininkas"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ši paleidimo priemonės programa nepalaiko darbo profilio. Reikės naudoti suderinamą paleidimo priemonę."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Atšaukti"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Gerai"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Darbo įrenginio naudotojas"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Nustatykite įrenginį"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Apdorojami sąrankos duomenys..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Prisijungiama prie „Wi-Fi“..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Atsisiunčiama administratoriaus programa..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Diegiama administratoriaus programa..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Nustatomas įrenginio savininkas..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Stabdyti sąranką?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Ar tikrai norite sustabdyti įrenginio duomenų nustatymą ir trynimą?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Atšaukti"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Gerai"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Nustatyti iš naujo"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Nepavyko nustatyti įrenginio. Susisiekite su IT skyriumi."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Šis įrenginys jau nustatytas"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Nepavyko prisijungti prie „Wi-Fi“"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Nepavyko naudoti administratoriaus programos dėl kontrolinės sumos klaidos. Susisiekite su IT skyriumi."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Nepavyko atsisiųsti administratoriaus programos"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Negalima naudoti administratoriaus programos. Trūksta jos komponentų arba ji sugadinta. Susisiekite su IT skyriumi."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Nepavyko įdiegti administratoriaus programos"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administratoriaus programa neįdiegta įrenginyje"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Stabdyti sąranką?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Ar tikrai norite sustabdyti sąranką?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ne"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Taip"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Atšaukiama..."</string>
+</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
new file mode 100644
index 0000000..9af6037
--- /dev/null
+++ b/res/values-lv/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Ierīces nodrošinātājs"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hmm..."</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Iestatiet savu profilu"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Jūsu organizācija kontrolē šo profilu un uztur tā drošību. Jūs kontrolējat pārējo ierīces saturu."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Tālāk norādītajai lietotnei būs nepieciešama piekļuve šim profilam:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Iestatīt"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Notiek darba profila iestatīšana..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administrators var pārraudzīt un pārvaldīt iestatījumus, korporatīvo piekļuvi, lietotnes un datus, kas ir saistīti ar šo profilu, tostarp tīkla darbības un informāciju par jūsu ierīces atrašanās vietu."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administrators var pārraudzīt un pārvaldīt iestatījumus, korporatīvo piekļuvi, lietotnes un datus, kas ir saistīti ar šo ierīci, tostarp tīkla darbības un informāciju par jūsu ierīces atrašanās vietu."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Lai iegūtu plašāku informāciju, tostarp informāciju par uzņēmuma konfidencialitātes politikām, sazinieties ar administratoru."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Uzzināt vairāk"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Atcelt"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Labi"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Darba profils"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Jūsu ierīcē jau ir darba profils. Vai vēlaties to noņemt?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Vai tiešām vēlaties noņemt šo darba profilu? Visi tā dati tiks dzēsti."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Noņemt"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Atcelt"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Lai turpinātu darba profila iestatīšanu, jums ir jāšifrē sava ierīce. Tas var ilgt kādu laiku."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Atcelt"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Šifrēt"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Šifrēšana pabeigta"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Pieskarieties, lai turpinātu darba profila iestatīšanu"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Nevarēja iestatīt darba profilu. Sazinieties ar IT nodaļu vai vēlāk mēģiniet vēlreiz."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Jūsu ierīcē netiek atbalstīti darba profili"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Darba profili ir jāiestata ierīces īpašniekam"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Šī palaišanas lietotne neatbalsta jūsu darba profilu. Jums jālieto saderīga palaišanas programma."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Atcelt"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Labi"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Darba ierīces lietotājs"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Ierīces iestatīšana"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Notiek iestatīšanas datu apstrāde..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Notiek savienojuma izveide ar Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Notiek administratora lietotnes lejupielāde…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Notiek administratora lietotnes instalēšana…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Notiek ierīces īpašnieka iestatīšana..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Vai apturēt iestatīšanu?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Vai tiešām vēlaties pārtraukt iestatīšanu un izdzēst ierīces datus?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Atcelt"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Labi"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Atiestatīt"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Nevarēja iestatīt ierīci. Sazinieties ar IT nodaļu."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Šī ierīce jau ir iestatīta"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Neizdevās izveidot savienojumu ar Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Nevarēja izmantot administratora lietotni kontrolsummas kļūdas dēļ. Sazinieties ar IT nodaļu."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Neizdevās ielādēt administratora lietotni"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Nevar izmantot administratora lietotni. Tajā trūkst komponentu, vai tā ir bojāta. Sazinieties ar IT nodaļu."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Neizdevās instalēt administratora lietotni"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administratora lietotne nav instalēta ierīcē"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Vai apturēt iestatīšanu?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Vai tiešām vēlaties apturēt iestatīšanu?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nē"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Jā"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Notiek atcelšana..."</string>
+</resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
new file mode 100644
index 0000000..97f143a
--- /dev/null
+++ b/res/values-mk-rMK/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Обезбедувач на уред"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Оф леле!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Поставете го вашиот профил"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Вашата организација го контролира профилот и го одржува безбеден. Вие контролирате сѐ останато на уредот."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Следнава апликација ќе треба да пристапува до профилот:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Постави"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Се поставува работниот профил..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Администраторот може да ги набљудува и да управува со поставките, корпоративниот пристап, апликациите и податоците поврзани со профилот, вклучувајќи ја мрежната активност и информациите за локацијата на уредот."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Администраторот може да ги следи и да управува со поставките, корпоративниот пристап, апликациите и податоците поврзани со овој уред, како и со мрежната активност и информациите за локацијата на уредот."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Контактирајте со администраторот за повеќе информации, како и за политиките за приватност на организацијата."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Дознај повеќе"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Откажи"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Во ред"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Работен профил"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Веќе имате работен профил на уредот. Дали сакате да го отстраните?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Дали сте сигурни дека сакате да го отстраните работниот профил? Сите негови податоци ќе се избришат."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Отстрани"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Откажи"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"За да продолжите со поставување на работниот профил, ќе треба да го шифрирате уредот. Тоа може да потрае."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Откажи"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Шифрирај"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифрирањето е завршено"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Допрете за да продолжи поставувањето на работниот профил"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Не можевме да го поставиме работниот профил. Контактирајте со одделот за ИТ или обидете се повторно подоцна."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Уредот не поддржува работни профили"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Работните профили треба да ги поставува сопственикот на уредот"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Работниот профил не е поддржан од оваа апликација на стартерот. Ќе треба да се префрлите на стартер којшто е компатибилен."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Откажи"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Во ред"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Корисник на работен уред"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Поставете го уредот"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Се обработуваат податоците за поставување..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Се поврзува на Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Се презема администраторската апликација..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Се инсталира администраторската апликација..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Се поставува сопственикот на уредот..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Да запреме со поставување?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Дали сигурно сакате да запрете со поставувањето и да ги избришете податоците на уредот?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Откажи"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Во ред"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Ресетирај"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Не можевме да го поставиме уредот. Контактирајте со одделот за ИТ."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Уредот е веќе поставен"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Не можеше да се поврзе со Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Не можевме да ја користиме администраторската апликација поради грешка во контролната сума. Контактирајте со одделот за ИТ."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Не можеше да се преземе апликацијата за администратор"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Не може да се користи администраторската апликација. Ѝ недостасуваат компоненти или е оштетена. Контактирајте со одделот за ИТ."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Не можеше да се инсталира апликацијата за администратор"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Апликацијата за администратор не е инсталирана на уредот"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Да прекине поставувањето?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Дали сигурно сакате да го прекинете поставувањето?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Не"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Да"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Се откажува..."</string>
+</resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
new file mode 100644
index 0000000..34b4f9e
--- /dev/null
+++ b/res/values-ml-rIN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"ഉപകരണ പ്രൊവിഷണർ"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ക്ഷമിക്കണം!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"നിങ്ങളുടെ പ്രൊഫൈല്‍ സജ്ജമാക്കുക"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"നിങ്ങളുടെ ഓർഗനൈസേഷൻ, ഈ പ്രൊഫൈൽ നിയന്ത്രിച്ച് അവ സുരക്ഷിതമായി സൂക്ഷിക്കുന്നു. ഉപകരണത്തിലെ മറ്റുള്ളവയെല്ലാം നിങ്ങൾക്ക് നിയന്ത്രിക്കാനാവും."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"ഇനിപ്പറയുന്ന അപ്ലിക്കേഷന് ഈ പ്രൊഫൈൽ ആക്‌സസ്സുചെയ്യേണ്ടിവരും:"</string>
+    <string name="set_up" msgid="7012862095553564169">"സജ്ജീകരിക്കുക"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ സജ്ജീകരിക്കുന്നു..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"നെറ്റ്‌വർക്ക് പ്രവർത്തനവും ഉപകരണത്തിന്റെ ലൊക്കേഷൻ വിവരവും ഉൾപ്പെടെ നിങ്ങളുടെ പ്രൊഫൈലുമായി ബന്ധപ്പെട്ട ക്രമീകരണങ്ങളും കോർപ്പറേറ്റ് ആക്‌സസ്സും അപ്ലിക്കേഷനുകളും ഡാറ്റയും നിരീക്ഷിക്കാനും നിയന്ത്രിക്കാനും അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് കഴിയും."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"നെറ്റ്‌വർക്ക് പ്രവർത്തനവും ഉപകരണത്തിന്റെ ലൊക്കേഷൻ വിവരവും ഉൾപ്പെടെ, ഈ ഉപകരണവുമായി ബന്ധപ്പെട്ട ക്രമീകരണങ്ങളും കോർപ്പറേറ്റ് ആക്‌സസ്സും അപ്ലിക്കേഷനുകളും ഡാറ്റയും നിരീക്ഷിക്കാനും നിയന്ത്രിക്കാനും അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് കഴിയും."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"നിങ്ങളുടെ ഓർഗനൈസേഷന്റെ സ്വകാര്യതാ നയങ്ങൾ ഉൾപ്പെടെയുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് അഡ്‌മിനിസ്‌ട്രേറ്ററെ ബന്ധപ്പെടുക."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"കൂടുതലറിയുക"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"റദ്ദാക്കുക"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ശരി"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"നിങ്ങളുടെ ഉപകരണത്തിൽ ഇതിനകം ഒരു ഔദ്യോഗിക പ്രൊഫൈലുണ്ട്. ഇത് നീക്കംചെയ്യണോ?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"ഈ ഔദ്യോഗിക പ്രൊഫൈൽ നീക്കംചെയ്യണമെന്ന് തീർച്ചയാണോ? ഇതിന്റെ എല്ലാ ഡാറ്റയും ഇല്ലാതാക്കും."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"നീക്കംചെയ്യുക"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"റദ്ദാക്കുക"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ സജ്ജീകരിക്കുന്നത് തുടരാൻ, നിങ്ങളുടെ ഉപകരണം എൻക്രിപ്റ്റ് ചെയ്യേണ്ടതുണ്ട്. ഇതിന് കുറച്ച് സമയമെടുത്തേക്കാം."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"റദ്ദാക്കുക"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"എൻക്രിപ്‌റ്റുചെയ്യുക"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"എൻക്രി‌പ്‌റ്റുചെയ്യൽ പൂർത്തിയാക്കുക"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ സജ്ജീകരിക്കുന്നത് തുടരാൻ സ്‌പർശിക്കുക"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ സജ്ജീകരിക്കാനായില്ല. നിങ്ങളുടെ ഐടി വിഭാഗവുമായി ബന്ധപ്പെടുക അല്ലെങ്കിൽ പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"നിങ്ങളുടെ ഉപകരണം ഔദ്യോഗിക പ്രൊഫൈലുകളെ പിന്തുണയ്‌ക്കുന്നില്ല"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"ഔദ്യോഗിക പ്രൊഫൈലുകൾ, ഉപകരണ ഉടമ സജ്ജീകരിക്കേണ്ടതുണ്ട്"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"ഈ ലോഞ്ചർ അപ്ലിക്കേഷൻ നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈലിനെ പിന്തുണയ്‌ക്കില്ല. അനുയോജ്യമായ ലോഞ്ചറിലേക്ക് മാറേണ്ടതുണ്ട്."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"റദ്ദാക്കുക"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ശരി"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"ഔദ്യോഗിക ഉപകരണത്തിന്റെ ഉപയോക്താവ്"</string>
+    <string name="setup_device" msgid="6725265673245816366">"നിങ്ങളുടെ ഉപകരണം സജ്ജീകരിക്കുക"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"സജ്ജീകരണ ഡാറ്റ പ്രോസസ്സുചെയ്യുന്നു..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi-ലേക്ക് കണക്‌റ്റുചെയ്യുന്നു..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഡൗൺലോഡുചെയ്യുന്നു..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്യുന്നു..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"ഉപകരണ ഉടമയെ സജ്ജീകരിക്കുന്നു..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"സജ്ജീകരിക്കൽ നിർത്തണോ?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"നിങ്ങളുടെ ഉപകരണത്തിന്റെ ഡാറ്റ സജ്ജീകരിക്കുന്നത് അവസാനിപ്പിച്ച് അത് മായ്‌ക്കണമെന്നത് തീർച്ചയാണോ?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"റദ്ദാക്കുക"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ശരി"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"പുനഃസജ്ജമാക്കുക"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"നിങ്ങളുടെ ഉപകരണം സജ്ജീകരിക്കാനായില്ല. നിങ്ങളുടെ ഐടി വിഭാഗവുമായി ബന്ധപ്പെടുക."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ഈ ഉപകരണം ഇതിനകം തന്നെ സജ്ജീകരിച്ചിരിക്കുന്നു"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi ലേക്ക് കണക്‌റ്റുചെയ്യാനായില്ല"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"ഒരു ചെക്ക്‌സം പിശക് കാരണം അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഉപയോഗിക്കാനായില്ല. നിങ്ങളുടെ ഐടി വിഭാഗവുമായി ബന്ധപ്പെടുക."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഡൗൺലോഡുചെയ്യാനായില്ല"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഉപയോഗിക്കാനാവില്ല. അതിന്റെ ഘടകഭാഗങ്ങൾ നഷ്‌ടപ്പെട്ടതോ കേടായതോ ആണ്. നിങ്ങളുടെ ഐടി വിഭാഗവുമായി ബന്ധപ്പെടുക."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്യാനായില്ല"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"നിങ്ങളുടെ ഉപകരണത്തിൽ അഡ്‌മിൻ അപ്ലിക്കേഷൻ ഇൻസ്‌റ്റാളുചെയ്‌തിട്ടില്ല"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"സജ്ജീകരിക്കൽ നിർത്തണോ?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"സജ്ജീകരിക്കൽ നിർത്തണമെന്ന് തീർച്ചയാണോ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"അല്ല"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"അതെ"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"റദ്ദാക്കുന്നു..."</string>
+</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..37de573
--- /dev/null
+++ b/res/values-mn-rMN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Төхөөрөмжийн Нийлүүлэгч"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Алдаа!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Өөрийн профайлыг тохируулна уу"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Таны компани энэ профайлыг хянаж, аюулгүй байлгадаг. Та төхөөрөмж дээрх бусад зүйлсийг хянана."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Дараах апп энэ профайлд хандах шаардлагатай:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Тохируулах"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Таны ажлын профайлыг тохируулж байна..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Танай админ тохиргоо, байгууллагын хандалт, апп болон профайлтай холбоотой дата, сүлжээний идэвхжилт болон таны төхөөрөмжийн байршлын мэдээлэл зэргийг хянах, удирдах боломжтой."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Таны админ тохиргоо, байгууллагын хандалт, апп-ууд, энэ төхөөрөмжтэй холбоотой дата, сүлжээний идэвхжилт, төхөөрөмжийн байршлын мэдээлэл зэргийг хянах, удирдах эрхтэй."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Танай байгууллагын нууцлалын бодлого зэрэг дэлгэрэнгүй мэдээллийг өөрийн администраторт хандаж авна уу."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Дэлгэрэнгүй үзэх"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Цуцлах"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ТИЙМ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Ажлын профайл"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Таны төхөөрөмж дээр ажлын профайл байна. Үүнийг арилгах уу?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Энэ ажлын профайлыг устгахдаа итгэлтэй байна уу? Үүний бүх дата устах болно."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Хасах"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Цуцлах"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Ажлын профайлыг үргэлжлүүлэн суулгахын тулд та төхөөрөмжөө шифрлэх шаардлагатай. Үүнд хэсэг хугацаа орж болно."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Цуцлах"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Шифрлэх"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифрлэлт дууссан"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Ажлын профайлаа үргэлжлүүлэн тохируулахын тулд хүрнэ үү"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Таны ажлын профайлыг тохируулж чадсангүй. МТ хэлтэстэй холбогдох буюу дараа дахин оролдоно уу."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Таны төхөөрөмж ажлын профайлыг дэмждэггүй"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Ажлын профайлыг төхөөрөмжийн эзэмшигч тохируулах шаардлагатай."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Таны ажлын профайл энэ эхлүүлэгч апп-аар дэмжигдээгүй байна. Таарах эхлүүлэгч апп-р солино уу."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Цуцлах"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Тийм"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Ажлын төхөөрөмжийн хэрэглэгч"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Төхөөрөмжөө тохируулна уу"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Тохируулгын датаг боловсруулж байна..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi руу холбогдож байна..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Админ апп-г татаж авч байна..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Админ апп суулгаж байна..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Төхөөрөмжийн эзэмшигчийг тохируулж байна..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Тохируулгыг зогсоох уу?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Та төхөөрөмжөө тохируулахыг зогсоож, датаг устгах уу?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Цуцлах"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ТИЙМ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Дахин шинэчлэх"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Таны төхөөрөмжийг тохируулж чадсангүй. МТ хэлтэстэй холбогдоно уу."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Энэ төхөөрөмжийг аль хэдийн тохируулсан"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi-д холбогдож чадсангүй"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"checksum алдаанаас шалтгаалан админ апп-г ашиглаж чадсангүй. МТ хэлтэстэй холбогдоно уу."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Админ апп-г татаж авч чадсангүй"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Админ апп-г ашиглах боломжгүй. Бүрдэл дутагдсан эсхүл гэмтсэн байна. МТ хэлтэстэй холбогдоно уу."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Админ апп-г суулгаж чадсангүй"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Таны төхөөрөмж дээр админ апп суугаагүй байна"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Тохируулгыг зогсоох уу?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Та тохируулгыг зогсоохдоо итгэлтэй байна уу?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Үгүй"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Тийм"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Цуцлаж байна..."</string>
+</resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
new file mode 100644
index 0000000..857e74c
--- /dev/null
+++ b/res/values-mr-rIN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"डिव्‍हाइस तरतूदकर्ता"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"अरेरे!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"आपले प्रोफाईल सेट करा"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"आपली संस्था हे प्रोफाईल नियंत्रित करते आणि ते सुरक्षित ठेवते. आपण आपल्या डिव्हाइसवरील अन्य प्रत्येकगोष्ट नियंत्रित करता."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"खालील अ‍ॅपला या प्रोफाईलमध्‍ये प्रवेश करण्‍याची आवश्‍यकता असेल:"</string>
+    <string name="set_up" msgid="7012862095553564169">"सेट अप"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"आपले कार्य प्रोफाईल सेट करत आहे..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"आपल्या प्रशासकाकडे सेटिंग्ज, कॉर्पोरेट प्रवेश, अॅप्स आणि नेटवर्क क्रियाकलाप आणि आपल्या डिव्हाइसच्या स्थान माहितीसह प्रोफाईलशी संबंधित डेटाचे परीक्षण करण्याची आणि ते व्यवस्थापित करण्याची क्षमता आहे."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"आपल्या प्रशासकाकडे सेटिंग्ज, कॉर्पोरेट प्रवेश, अॅप्स आणि नेटवर्क क्रियाकलाप आणि आपल्या डिव्हाइसच्या स्थान माहितीसह या डिव्हाइसशी संबंधित डेटाचे परीक्षण करण्याची आणि ते व्यवस्थापित करण्याची क्षमता आहे."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"आपल्‍या संस्‍थेच्या गोपनीयता धोरणांसह अधिक माहितीसाठी आपल्‍या प्रशासकाशी संपर्क साधा."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"अधिक जाणून घ्या"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"रद्द करा"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ठीक आहे"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"कार्य प्रोफाईल"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"आपल्‍याकडे आपल्‍या डिव्‍हाइसवर आधीपासून कार्य प्रोफाईल आहे. आपण ते काढू इच्‍छिता?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"आपल्‍याला खात्री आहे की आपण हे कार्य प्रोफाईल काढू इच्‍छिता? त्याचा सर्व डेटा हटविला जाईल."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"काढा"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"रद्द करा"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"आपले कार्य प्रोफाईल सेट करणे सुरु ठेवण्‍यासाठी, आपल्‍याला आपले डिव्हाइस कूटबद्ध करणे आवश्‍यक असेल. यास कदाचित काही वेळ लागू शकतो."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"रद्द करा"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"कूटबद्ध करा"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"कूटबद्धीकरण पूर्ण"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"आपले कार्य प्रोफाईल सेट करणे सुरु ठेवण्यासाठी स्पर्श करा"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"आपले कार्य प्रोफाईल सेट करणे शक्य झाले नाही. आपल्या IT विभागाशी संपर्क साधा किंवा नंतर पुन्हा प्रयत्न करा."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"आपले डिव्‍हाइस कार्य प्रोफाईलचे समर्थन करीत नाही"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"कार्य प्रोफाईल डिव्‍हाइस मालकाद्वारे सेट केले जाणे आवश्‍यक आहे"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"आपले कार्य प्रोफाईल या लाँचर अॅपद्वारे समर्थित नाही. आपल्याला सुसंगत असलेल्या लाँचरवर स्विच करण्याची आवश्यकता असेल."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"रद्द करा"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ठीक आहे"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"कार्य डिव्‍हाइसचा वापरकर्ता"</string>
+    <string name="setup_device" msgid="6725265673245816366">"आपले डिव्हाइस सेट करा"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"सेटअप डेटावर प्रक्रिया करत आहे..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"वाय-फाय शी कनेक्ट करत आहे..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"प्रशासन अॅप डाउनलोड करत आहे..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"प्रशासन अॅप स्थापित करत आहे..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"डिव्हाइस मालक सेट करत आहे..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"सेट करणे थांबवायचे?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"आपल्याला खात्री आहे की आपण सेट करणे थांबवू इच्छिता आणि आपल्या डिव्हाइसचा डेटा मिटवू इच्छिता?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"रद्द करा"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ठीक आहे"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"रीसेट करा"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"आपले डिव्हाइस सेट करणे शक्य झाले नाही. आपल्या IT विभागाशी संपर्क साधा."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"हे डिव्‍हाइस आधीपासून सेट केले आहे"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"वाय-फाय ला कनेक्ट करू शकलो नाही"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"एका checksum त्रुटीमुळे प्रशासन अॅप वापरणे शक्य झाले नाही. आपल्या IT विभागाशी संपर्क साधा."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"प्रशासक अ‍ॅप डाउनलोड करणे शक्य झाले नाही"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"प्रशासन अॅप वापरणे शक्य नाही. ते गहाळ घटक किंवा दूषित आहेत. आपल्या IT विभागाशी संपर्क साधा."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"प्रशासक अ‍ॅप स्‍थापित करणे शक्य झाले नाही"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"आपल्‍या डिव्‍हाइसवर प्रशासक अ‍ॅप स्‍थापित केला नाही"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"सेट करणे थांबवायचे?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"आपल्याला खात्री आहे की आपण सेट करणे थांबवू इच्छिता?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"नाही"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"होय"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"रद्द करत आहे..."</string>
+</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
new file mode 100644
index 0000000..4b251bc
--- /dev/null
+++ b/res/values-ms-rMY/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Peruntukan Peranti"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Op!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Sediakan profil anda"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Organisasi anda mengawal profil ini dan memastikan profil selamat. Anda mengawal segala perkara lain pada peranti anda."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Apl berikut perlu mengakses profil ini:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Sediakan"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Menyediakan profil kerja anda..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Pentadbir anda mempunyai keupayaan untuk memantau dan mengurus tetapan, akses korporat, apl dan data yang dikaitkan dengan profil, termasuk aktiviti rangkaian dan maklumat lokasi peranti anda."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Pentadbir organisasi anda mempunyai keupayaan untuk memantau dan mengurus tetapan, akses korporat, apl dan data yang dikaitkan dengan peranti ini, termasuk aktiviti rangkaian dan maklumat lokasi peranti anda."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Hubungi pentadbir anda untuk maklumat lanjut, termasuk dasar privasi organisasi anda."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Ketahui lebih lanjut"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Batal"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profil kerja"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Anda sudah mempunyai profil kerja pada peranti anda. Adakah anda mahu mengalih keluar profil itu?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Adakah anda pasti anda mahu memadam profil kerja ini? Semua data akan dipadamkan."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Alih keluar"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Batal"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Untuk meneruskan persediaan, anda perlu menyulitkan peranti anda. Proses ini mungkin mengambil sedikit masa."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Batal"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Sulitkan"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Penyulitan selesai"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Sentuh untuk terus menyediakan profil kerja anda"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Tidak dapat menyediakan profil kerja anda. Hubungi jabatan IT anda atau cuba sebentar lagi."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Peranti anda tidak menyokong profil kerja"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Profil kerja perlu disediakan oleh pemilik peranti"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Profil kerja anda tidak disokong oleh apl pelancar ini. Anda perlu bertukar kepada pelancar yang serasi."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Batal"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Ok"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Pengguna peranti kerja"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Sediakan peranti anda"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Memproses data persediaan..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Menyambung ke Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Memuat turun apl pentadbir..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Memasang apl pentadbir..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Menetapkan pemilik peranti..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Berhenti menyediakan?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Adakah anda pasti anda mahu berhenti menyediakan dan padam data peranti anda?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Batal"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Tetapkan semula"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Tidak dapat menyediakan peranti anda. Hubungi jabatan IT anda."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Peranti ini sudah disediakan"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Tidak boleh menyambung kepada Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Tidak dapat menggunakan apl pentadbir kerana ralat semak jumlah. Hubungi jabatan IT anda."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Tidak dapat memuat turun apl pentadbir"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Tidak dapat menggunakan apl pentadbir. Apl ketiadaan komponen atau rosak. Hubungi jabatan IT anda."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Tidak dapat memasang apl pentadbir"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Apl pentadbir tidak dipasang pada peranti anda"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Berhenti menyediakan?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Adakah anda pasti anda ingin menghentikan penyediaan?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Tidak"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ya"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Membatalkan..."</string>
+</resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
new file mode 100644
index 0000000..396de3d
--- /dev/null
+++ b/res/values-my-rMM/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"ကိရိယာကို စီမံဆောင်ရွက်ပေးသူ"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"အူးပ်စ်!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"သင်၏ ပရိုဖိုင်ကို စဖွင့်သတ်မှတ်ရန်"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"သင်၏ အဖွဲ့အစည်းက ဒီပရိုဖိုင်ကို ထိန်းချုပ်လျက် လုံခြုံအောင် ထားရှိပါသည်။ သင်သည် သင့် ကိရိယာ ထဲက ကျန်အရာများကို ထိန်းချုပ်ပါသည်။"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"အောက်ပါ appက ဒီပရိုဖိုင်ကို ရယူသုံးရန် လိုအပ်မည်:"</string>
+    <string name="set_up" msgid="7012862095553564169">"စဖွင့်သတ်မှတ်ရန်"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"သင်၏ အလုပ် ပရိုဖိုင်ကို စဖွင့်စီစဉ်နေ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"သင်၏ စီမံအုပ်ချုပ်သူသည် ပရိုဖိုင်နှင့် ဆက်နွှယ်နေသည့် ဆက်တင်များ၊ လုပ်ငန်းဆိုင်ရာ ရယူသုံးမှုများ၊ appများ နှင့် ဒေတာများကို၊ ကွန်ရက် လှုပ်ရှားမှုများ နှင့် သင့် ကိရိယာ တည်နေရာ အချက်အလက်များ အပါအဝင်ကို၊ စောင့်ကြပ် စီမံကွပ်ကဲနိုင်စွမ်း ရှိပါသည်။"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"ဆက်တင်များ၊ လုပ်ငန်းဆိုင်ရာ အသုံးပြုမှုများ၊ appများ၊ ဒီကိရိယာနှင့် ဆက်စပ်နေသည့် ဒေတာကို၊ ကွန်ရက် လှုပ်ရှားမှု နှင့် သင့်ကိရိယာ၏ တည်နေရာ အချက်အလက်များအပါအဝင်ကို၊ သင်၏ စီမံအုပ်ချုပ်သူက စောင့်ကြည့်ပြီး စီမံကွပ်ကဲနိုင်သည်။"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"သင့်အဖွဲ့အစည်း၏ ကိုယ်ရေးမူဝါဒများ အပါအဝင်၊ တစ်ခြား အချက်အလက်များ အတွက် သင့်စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"ပိုမိုသိလိုလျှင်"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"ထားတော့"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"အိုကေ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"အလုပ် ပရိုဖိုင်"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"သင့်စက်တွင် အလုပ်ပရိုဖိုင်ရှိပြီးဖြစ်သည်။ သင် ဖယ်ရှားလိုပါသလား?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"ဤအလုပ်ပရိုဖိုင်ကို ဖယ်လိုသည်မှာ သေချာသလား? ဒေတာအားလုံး ပျက်သွားလိမ့်မည်။"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"ဖယ်ရှားရန်"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"ထားတော့"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"သင့် အလုပ်ပရိုဖိုင်ကို ဆက်လက် တပ်ဆင်သတ်မှတ်ရန်၊ သင့်စက်အား လျှို့ဝှက်ကုဒ် သွင်းရမည်။ အချိန်အနည်းငယ် ကြာနိုင်သည်။"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"ထားတော့"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"လျှို့ဝှက်ကုဒ်သွင်း"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"လျှို့ဝှက်ကုဒ် သွင်းမှု ပြီးဆုံးသွားပြီ"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"သင်၏ အလုပ် ပရိုဖိုင်ကို စဖွင့်သတ်မှတ်မှု ဆက်လုပ်ကိုင်ရန် ထိပါ"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"သင်၏ အလုပ် ပရိုဖိုင်ကို စဖွင့်စီစဉ် မရခဲ့ပါ။ သင်၏ IT ဌာနကို ဆက်သွယ်ပါ သို့မဟုတ် နောက်မှာ ထပ်စမ်းပါ။"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"သင့်စက်က အလုပ်ပရိုဖိုင်များကို မပံ့ပိုးပါ။"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"စက်ပိုင်ရှင်မှ အလုပ်ပရိုဖိုင်များကို စတင်သတ်မှတ်ရန်လိုသည်။"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"သင့် အလုပ် ပရိုဖိုင်ကို ဒီဖွင့်တင်ရေး appမှ မပံ့ပိုးပါ။ သင်သည် လိုက်ဖက်သည့် ဖွင့်တင်ရေးစက်သို့ ပြောင်းရန် လိုသည်။"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"ထားတော့"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"အိုကေ"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"အလုပ်စက်ပစ္စည်း အသုံးပြုသူ"</string>
+    <string name="setup_device" msgid="6725265673245816366">"သင်၏ ကိရိယာကို စဖွင့်သတ်မှတ်ရန်"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"စဖွင့်စီစဉ်ရေး ဒေတာကို စီမံဆောင်ရွက်နေ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"ကြိုးမဲ့သို့ ချိတ်ဆက်နေ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"စီမံအုပ်ချုပ်သူ appကို ဒေါင်းလုဒ် လုပ်နေ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"စီမံအုပ်ချုပ်သူ appကို တပ်ဆင်နေ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"ကိရိယာ ပိုင်ရှင်ကို စဖွင့်သတ်မှတ်နေ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"စဖွင့်သတ်မှတ်ခြင်း မလုပ်တော့ဘူးလား?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"သင်သည် စဖွင့်စီစဉ်မှုကို ရပ်စဲလိုက်ကာ သင့် ကိရိယာ၏ ဒေတာကို ဖျက်ပစ်လိုတာ သေချာသလား?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"ထားတော့"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"အိုကေ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"ပြန်ညှိရန်"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"သင်၏ ကိရိယာကို စဖွင့်စီစဉ် မပေးနိုင်ခဲ့ပါ။ သင်၏ IT ဌာနကို ဆက်သွယ်ပါ။"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ဤစက်အား ပြင်ဆင်သတ်မှတ်ပြီး"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"ဝိုင်−ဖိုင်ကို ချိတ်ဆက်မရပါ"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"checksum အမှားကြောင့် စီမံအုပ်ချုပ်သူ appကို မသုံးနိုင်ခဲ့ပါ။ သင်၏ IT ဌာနကို ဆက်သွယ်ပါ။"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"အက်ဒမင် appကို ဒေါင်းလုဒ် မလုပ်နိုင်ခဲ့ပါ။"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"စီမံအုပ်ချုပ်သူ appကို မသုံးနိုင်ခဲ့ပါ။ ၎င်းထဲက အစိတ်အပိုင်းများ ​ပျောက်နေ သို့မဟုတ် ပျက်စီးနေသည်။ သင်၏ IT ဌာနကို ဆက်သွယ်ပါ။"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"အက်ဒမင် appကို မတပ်ဆင်နိုင်ပါ။"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"သင့်စက်တွင် အက်ဒမင် app မတပ်ဆင်ရသေးပါ။"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"စဖွင့်သတ်မှတ်ခြင်း ရပ်စဲမလား?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"သင်သည် စဖွင့်သတ်မှတ်မှုကို ရပ်စဲချင်တာ သေချာသလား?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"မလို"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"ဟုတ်"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"ဖျက်နေ..."</string>
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
new file mode 100644
index 0000000..cbc1074
--- /dev/null
+++ b/res/values-nb/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Enhetstildeler"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Beklager!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Konfigurer profilen din"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Organisasjonen kontrollerer denne profilen og holder den sikker. Du styrer alt annet på enheten."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Denne appen trenger tilgang til denne profilen:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Konfigurer"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Konfigurerer arbeidsprofilen din ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administratoren din kan overvåke og administrere innstillinger, bedriftstilgang, apper og data tilknyttet denne profilen, herunder nettverksaktivitet og enhetens posisjonsinformasjon."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administratoren din kan overvåke og administrere innstillinger, bedriftstilgang, apper og data tilknyttet denne enheten, herunder nettverksaktivitet og enhetens posisjonsinformasjon."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Hvis du vil ha mer informasjon, inkludert organisasjonens retningslinjer for personvern, kan du kontakte administratoren din."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Finn ut mer"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Avbryt"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Arbeidsprofil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Det er allerede en arbeidsprofil på enheten din. Vil du fjerne den?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Er du sikker på at du vil fjerne denne arbeidsprofilen? Alle profildataene slettes."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Fjern"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Avbryt"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Hvis du vil fortsette konfigurasjonen av arbeidsprofilen, må du kryptere enheten din. Dette kan ta en stund."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Avbryt"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Kryptér"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Krypteringen er fullført"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Trykk for å fortsette konfigureringen av arbeidsprofilen din"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Kunne ikke konfigurere arbeidsprofilen din. Ta kontakt med IT-avdelingen og prøv på nytt senere."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Enheten din støtter ikke arbeidsprofiler"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Arbeidsprofiler må konfigureres av enhetseieren"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Arbeidsprofilen din støttes ikke av denne appoversikt-appen. Du må bytte til en kompatibel appoversikt."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Avbryt"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Bruker av arbeidsenhet"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Konfigurer enheten din"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Behandler konfigureringsdata ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Kobler til Wi-Fi ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Laster ned admin-appen ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installerer admin-appen ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Angir enhetseieren ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Vil du stoppe konfigurasjonen?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Er du sikker på at du vil stoppe konfigureringen og slette enhetens data?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Avbryt"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Tilbakestill"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Kunne ikke konfigurere enheten din. Ta kontakt med IT-avdelingen."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Denne enheten er allerede konfigurert"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Kan ikke koble til Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Kunne ikke bruke admin-appen på grunn av en sjekksumfeil. Ta kontakt med IT-avdelingen."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Kan ikke laste ned administratorappen"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Kan ikke bruke admin-appen. Den mangler komponenter eller er korrupt. Ta kontakt med IT-avdelingen."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Kan ikke installere administratorappen"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administratorappen er ikke installert på enheten din"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Vil du stoppe konfigureringen?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Er du sikker på at du vil stoppe konfigureringen?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nei"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ja"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Avbryter ..."</string>
+</resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..b0dc284
--- /dev/null
+++ b/res/values-ne-rNP/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"उपकरण प्रदायक"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"ओहो!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"तपाईँको प्रोफाइल सेट अप गर्नुहोस्"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"तपाईँको संगठनले यो प्रोफाइल नियन्त्रण र सुरक्षित राख्छ। तपाईँले तपाईँको उपकरणमा अरू सबै कुरा नियन्त्रण गर्नुहोस्।"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"निम्न अनुप्रयोग यो प्रोफाइल पहुँच गर्न आवश्यक हुने छ:"</string>
+    <string name="set_up" msgid="7012862095553564169">"मिलाउनुहोस्"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"तपाईँको कार्य प्रोफाइल स्थापना गर्दै..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"तपाईँको प्रशासकले सञ्जाल गतिविधि र तपाईँको उपकरणको स्थान जानकारी सहित अनुगमन गर्न र तपाईँको प्रोफाइल साथ सेटिङहरू प्रबन्ध, कर्पोरेट पहुँच, अनुप्रयोगहरू र डेटा, व्यवस्थापन गर्न सक्ने क्षमता छ।"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"तपाईँको प्रशासकले सञ्जाल गतिविधि र तपाईँको उपकरणको स्थान जानकारी सहित अनुगमन गर्न र तपाईँको उपकरण साथ सेटिङहरू प्रबन्ध, कर्पोरेट पहुँच, अनुप्रयोगहरू, डेटा, व्यवस्थापन गर्न सक्ने क्षमता छ।"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"तपाईँको संगठनको गोपनीयता नीति सहित अधिक जानकारीको लागि तपाईँको प्रशासकसँग सम्पर्क गर्नुहोस्।"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"थप सिक्नुहोस्"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"रद्द गर्नुहोस्"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ठीक छ"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"कार्य प्रोफाइल"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"तपाईं संग पहिलेनै तपाईँको उपकरणमा कार्य प्रोफाइल छ। तपाईं यसलाई हटाउन चाहनुहुन्छ?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"तपाईं यो कार्य प्रोफाइल हटाउन निश्चित हुनुहुन्छ? यसको सबै डेटा मेटिनेछ।"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"हटाउनुहोस्"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"रद्द गर्नुहोस्"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"तपाईँको कार्य प्रोफाइल स्थापना जारी गर्न, तपाईँले आफ्नो उपकरण गुप्तिकरण गर्न आवश्यक छ। यसले केही समय लाग्न सक्छ।"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"रद्द गर्नुहोस्"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"गुप्तिकरण"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"गुप्तिकरण पूर्ण"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"तपाईँको काम प्रोफाइल स्थापना जारी राख्न छुनुहोस्"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"तपाईँको कार्य प्रोफाइल स्थापित गर्न सकिएन। तपाईँको आईटी विभाग सम्पर्क गर्नुहोस् वा पछि फेरि प्रयास गर्नुहोस्।"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"तपाईंको उपकरणले कार्य प्रोफाइलहरू समर्थन गर्दैन।"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"कार्य प्रोफाइल उपकरण मालिक द्वारा स्थापित गर्न आवश्यक छ"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"तपाईँको कार्य प्रोफाइल यस सुरुवातकर्ता अनुप्रयोग समर्थित छैन। तपाईँले यससँग उपयुक्त एउटा सुरुवातकर्तामा स्विच गर्न आवश्यक छ।"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"रद्द गर्नुहोस्"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ठीक छ"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"कार्य उपकरणको प्रयोगकर्ता"</string>
+    <string name="setup_device" msgid="6725265673245816366">"तपाईँको उपकरण स्थापना गर्नुहोस्"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"स्थापना डेटा प्रशोधन गर्दै..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"वाइफाइ जडान गर्दै..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"प्रशासनिक अनुप्रयोग डाउनलोड गर्दै..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"प्रशासनिक अनुप्रयोग स्थापना गर्दै..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"उपकरण मालिक स्थापना गर्दै..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"सेट अप गर्न रोक्नुहुन्छ?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"के तपाईं स्थापना रोक्न र तपाईँको उपकरणको डेटा मेट्न चाहनुहुन्छ?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"रद्द गर्नुहोस्"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ठीक छ"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"पुनःसेट गर्नुहोस्"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"तपाईँको उपकरण स्थापना गर्न सकिएन। तपाईँको आईटी विभागमा सम्पर्क गर्नुहोस्।"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"यो उपकरण पहिले देखि नै स्थापित छ"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"वाई-फाई संग जडान हुन सकेन"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"प्रशासन अनुप्रयोग चेकसम त्रुटिको कारणले प्रयोग गर्न सकिएन। तपाईँको आईटी विभागमा सम्पर्क गर्नुहोस्।"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"प्रशासक अनुप्रयोग डाउनलोड गर्न सकिएन"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"प्रशासन अनुप्रयोग प्रयोग गर्न सकिएन। यो अवयवहरू हराइरहेका वा भ्रष्ट हुन्। तपाईँको आईटी विभागमा सम्पर्क गर्नुहोस्।"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"प्रशासक अनुप्रयोग स्थापना गर्न सकिएन"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"प्रशासन अनुप्रयोग तपाईँको उपकरणमा स्थापना गरिएको छैन"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"सेट अप गर्न रोक्नुहुन्छ?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"तपाईँ सेटअप गर्न रोक्न निश्चित हुनुहुन्छ?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"होइन"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"हो"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"रद्द गरिँदै..."</string>
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
new file mode 100644
index 0000000..49c753b
--- /dev/null
+++ b/res/values-nl/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Apparaatregistratie"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oeps!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Uw profiel instellen"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Uw organisatie beheert uw profiel en beveiligt dit. U beheert alle andere gegevens op uw apparaat."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"De volgende app heeft toegang nodig tot dit profiel:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Instellen"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Uw werkprofiel instellen..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Uw beheerder kan instellingen, zakelijke toegang, apps en gegevens bijhouden en beheren die aan het profiel zijn gekoppeld, waaronder netwerkactiviteit en de locatiegegevens van uw apparaat."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Uw beheerder kan instellingen, zakelijke toegang, apps en gegevens die aan dit profiel zijn gekoppeld, waaronder netwerkactiviteit en de locatiegegevens van uw apparaat, bijhouden en beheren."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Neem contact op met uw beheerder voor meer informatie, waaronder het privacybeleid van uw organisatie."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Meer informatie"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Annuleren"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Werkprofiel"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Uw apparaat bevat al een werkprofiel. Wilt u dit verwijderen?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Weet u zeker dat u dit werkprofiel wilt verwijderen? Alle bijbehorende gegevens worden verwijderd."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Verwijderen"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Annuleren"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Als u wilt doorgaan met instellen, moet u uw apparaat versleutelen. Dit kan even duren."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Annuleren"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Versleutelen"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Versleuteling voltooid"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Tik hierop om door te gaan met het instellen van uw werkprofiel"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Kan uw werkprofiel niet instellen. Neem contact op met uw IT-afdeling of probeer het later opnieuw."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Uw apparaat ondersteunt geen werkprofielen"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Werkprofielen moeten worden geconfigureerd door de eigenaar van het apparaat"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Uw werkprofiel wordt niet ondersteund door deze Launcher-app. U moet overschakelen naar een Launcher die compatibel is."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Annuleren"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Gebruiker van zakelijk apparaat"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Uw apparaat instellen"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Configuratiegegevens verwerken..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Verbinding maken met wifi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"De beheer-app downloaden..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"De beheer-app installeren..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"De eigenaar van het apparaat instellen..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Configureren stoppen?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Weet u zeker dat u wilt stoppen met instellen en de gegevens op uw apparaat wilt wissen?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Annuleren"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Opnieuw instellen"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Kan uw apparaat niet instellen. Neem contact op met uw IT-afdeling."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Dit apparaat is al geconfigureerd"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Kan geen verbinding maken met wifi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Kan de beheer-app niet gebruiken vanwege een controlesomfout. Neem contact op met uw IT-afdeling."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Kan de beheer-app niet downloaden"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Kan de beheer-app niet gebruiken. Er ontbreken onderdelen of de app is beschadigd. Neem contact op met uw IT-afdeling."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Kan de beheer-app niet installeren"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"De beheer-app is niet geïnstalleerd op uw apparaat"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Configureren stoppen?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Weet u zeker dat u het configureren wilt stoppen?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nee"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ja"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Annuleren..."</string>
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
new file mode 100644
index 0000000..6fb37c2
--- /dev/null
+++ b/res/values-pl/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Podmiot obsługujący urządzenie administracyjnie"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ups!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Wypełnij swój profil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Twoja organizacja kontroluje i zabezpiecza ten profil. Cała pozostała zawartość urządzenia jest pod Twoją kontrolą."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Aplikacja, która będzie potrzebować dostępu do tego profilu:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Skonfiguruj"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Konfigurowanie profilu do pracy..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administrator może monitorować ustawienia, firmowe uprawnienia dostępu, aplikacje i dane powiązane z profilem (w tym aktywność w sieci i informacje o lokalizacji Twojego urządzenia) oraz nimi zarządzać."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administrator może monitorować ustawienia, firmowe uprawnienia dostępu, aplikacje i dane powiązane z tym urządzeniem (w tym aktywność w sieci i informacje o lokalizacji) oraz nimi zarządzać."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Aby dowiedzieć się więcej i poznać politykę prywatności swojej organizacji, skontaktuj się z administratorem."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Więcej informacji"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Anuluj"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profil do pracy"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Masz już profil do pracy na tym urządzeniu. Chcesz go usunąć?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Czy na pewno chcesz usunąć ten profil do pracy? Wszystkie zawarte w nim dane zostaną usunięte."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Usuń"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Anuluj"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Aby kontynuować konfigurowanie profilu do pracy, musisz zaszyfrować swoje urządzenie. Może to trochę potrwać."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Anuluj"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Zaszyfruj"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Szyfrowanie zostało zakończone"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Kliknij, by kontynuować konfigurowanie profilu do pracy"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Nie można skonfigurować profilu do pracy. Skontaktuj się z działem IT lub spróbuj później jeszcze raz."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Urządzenie nie obsługuje profili do pracy"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Profile do pracy muszą być konfigurowane przez właściciela urządzenia"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ta aplikacja uruchamiająca nie obsługuje Twojego profilu do pracy. Przełącz się na zgodną."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Anuluj"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Użytkownik urządzenia służbowego"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Konfigurowanie urządzenia"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Przetwarzanie danych konfiguracyjnych..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Łączenie z Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Pobieranie aplikacji administratora..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instalowanie aplikacji administratora..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Ustawianie właściciela urządzenia..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Przerwać konfigurację?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Czy na pewno chcesz zatrzymać konfigurowanie i usunąć dane z urządzenia?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Anuluj"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Zresetuj"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Nie można skonfigurować urządzenia. Skontaktuj się z działem IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"To urządzenie już jest skonfigurowane"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Nie udało się połączyć z siecią Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Nie można użyć aplikacji administratora z powodu błędu sumy kontrolnej. Skontaktuj się z działem IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Nie udało się pobrać aplikacji administratora"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Nie można użyć aplikacji administratora. Brak elementów lub są one uszkodzone. Skontaktuj się z działem IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Nie udało się zainstalować aplikacji administratora"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Aplikacja administratora nie jest zainstalowana na urządzeniu"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Przerwać konfigurację?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Czy na pewno chcesz przerwać konfigurację?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nie"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Tak"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Anuluję..."</string>
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..cdf77fc
--- /dev/null
+++ b/res/values-pt-rPT/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Aprovisionador de dispositivos"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ups!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configurar o seu perfil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"A sua entidade controla este perfil e mantém-no seguro. O utilizador controla tudo o resto no dispositivo."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"A aplicação seguinte terá de aceder a este perfil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurar"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"A configurar o perfil de trabalho..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"O administrador tem a capacidade de monitorizar e gerir as definições, o acesso empresarial, as aplicações e os dados associados a este perfil, incluindo a atividade de rede e as informações de localização do seu dispositivo."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"O administrador tem a capacidade de monitorizar e gerir as definições, o acesso empresarial, as aplicações e os dados associados a este dispositivo, incluindo a atividade de rede e as informações de localização do seu dispositivo."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contacte o administrador para obter mais informações, incluindo as políticas de privacidade da sua entidade."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Saiba mais"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancelar"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Perfil de trabalho"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Já tem um perfil de trabalho no seu dispositivo. Pretende removê-lo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Tem a certeza de que pretende remover este perfil de trabalho? Todos os seus dados serão eliminados."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Remover"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancelar"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Para continuar a configuração do seu perfil de trabalho, terá de encriptar o dispositivo. Esta ação poderá demorar algum tempo."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancelar"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Encriptar"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Encriptação concluída"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Toque para continuar a configurar o seu perfil de trabalho"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Não foi possível configurar o perfil de trabalho. Contacte o departamento de TI ou tente novamente mais tarde."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"O dispositivo não é compatível com perfis de trabalho"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Os perfis de trabalho têm de ser configurados pelo proprietário do dispositivo"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"O seu perfil de trabalho não é suportado por esta aplicação de launcher. Terá de mudar para um launcher compatível."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancelar"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Ok"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Utilizador de dispositivo de trabalho"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurar o dispositivo"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"A processar dados de configuração..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"A estabelecer ligação Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"A transferir a aplicação de administração..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"A instalar a aplicação de administração..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"A configurar o proprietário do dispositivo..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Pretende parar a configuração?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Tem a certeza de que pretende parar a configuração e apagar os dados do dispositivo?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancelar"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Repor"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Não foi possível configurar o dispositivo. Contacte o departamento de TI."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"O dispositivo já está configurado"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Não foi possível ligar à rede Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Não foi possível utilizar a aplicação de administração devido a um erro de soma de verificação. Contacte o departamento de TI."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Não foi possível transferir a aplicação de administração"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Não é possível utilizar a aplicação de administração. Faltam componentes ou está danificada. Contacte o departamento de TI."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Não foi possível instalar a aplicação de administração"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"A aplicação de administração não está instalada no dispositivo"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Pretende parar a configuração?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Tem a certeza de que pretende parar a configuração?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Não"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Sim"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"A cancelar..."</string>
+</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
new file mode 100644
index 0000000..a1aaf6f
--- /dev/null
+++ b/res/values-pt/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Provisionador do dispositivo"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Epa!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configurar seu perfil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Sua organização controla este perfil e o mantém protegido. Você controla todo o resto em seu dispositivo."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"O seguinte app precisará acessar este perfil:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurar"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Configurando seu perfil de trabalho…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"O administrador pode monitorar e gerenciar configurações, acesso corporativo, apps e dados associados com o perfil, incluindo a atividade na rede e informações de localização do dispositivo."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"O administrador pode monitorar e gerenciar configurações, acesso corporativo, apps e dados associados a este dispositivo, incluindo a atividade na rede e informações de localização do dispositivo."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Entre em contato com o administrador para receber mais informações, incluindo as políticas de privacidade da organização."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Saiba mais"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Cancelar"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Ok"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Perfil de trabalho"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Você já tem um perfil de trabalho no dispositivo. Deseja removê-lo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Tem certeza de que deseja remover este perfil de trabalho? Todos os seus dados serão excluídos."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Remover"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Cancelar"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Para continuar a configuração do perfil de trabalho, você precisará criptografar o dispositivo. Isso pode levar algum tempo."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Cancelar"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Criptografar"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Criptografia concluída"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Toque para continuar a configuração de seu perfil de trabalho"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Não foi possível configurar seu perfil de trabalho. Entre em contato com o departamento de TI ou tente novamente mais tarde."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"O dispositivo não aceita perfis de trabalho"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Os perfis de trabalho precisam ser configurados pelo proprietário do dispositivo"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"O app da tela de início não aceita seu perfil de trabalho. É necessário mudar para uma tela de início compatível."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Cancelar"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Usuário de dispositivo de trabalho"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurar o dispositivo"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Processando dados de configuração…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Conectando-se ao Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Fazendo o download do app para administrador…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Instalando o app para administrador…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Configurando o proprietário do dispositivo…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Interromper configuração?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Tem certeza de que deseja interromper a configuração e limpar os dados de seu dispositivo?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Cancelar"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Redefinir"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Não foi possível configurar o dispositivo. Entre em contato com o departamento de TI."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Este dispositivo já está configurado"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Não foi possível se conectar a redes Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Não foi possível usar o app para administrador devido a um erro de soma de verificação. Entre em contato com o departamento de TI."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Não foi possível fazer o download do app para administrador"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Não é possível usar o app para administrador. Alguns componentes estão ausentes ou corrompidos. Entre em contato com o departamento de TI."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Não foi possível instalar o app para administrador"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"O app para administrador não foi instalado no dispositivo"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Interromper configuração?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Tem certeza de que deseja interromper a configuração?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Não"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Sim"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Cancelando..."</string>
+</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
new file mode 100644
index 0000000..f9810bb
--- /dev/null
+++ b/res/values-ro/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Alocarea de resurse pentru dispozitiv"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hopa!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Configurați-vă profilul"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Organizația dvs. controlează acest profil și menține siguranța acestuia. Dvs. controlați restul conținutului de pe dispozitiv."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Următoarea aplicație va trebui să vă acceseze profilul:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Configurați"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Se configurează profilul de serviciu..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administratorul poate monitoriza și a gestiona setările, accesul la nivelul companiei, aplicațiile și datele asociate cu profilul, inclusiv activitatea în rețea și informațiile despre locația dispozitivului."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administratorul poate monitoriza și gestiona setările, accesul la nivelul companiei, aplicațiile și datele asociate cu acest dispozitiv, inclusiv activitatea în rețea și informațiile despre locația dispozitivului."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Contactați administratorul pentru mai multe informații, inclusiv politicile de confidențialitate ale organizației."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Aflați mai multe"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Anulați"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profilul de serviciu"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Aveți deja un profil de serviciu pe dispozitiv. Doriți să îl eliminați?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Sigur doriți să ștergeți acest profil de serviciu? Toate datele vor fi șterse."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Ștergeți"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Anulați"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Pentru a continua configurarea profilului de serviciu, va trebui să criptați dispozitivul. Aceasta poate dura ceva timp."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Anulați"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Criptați"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Criptare completă"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Atingeți pentru a continua configurarea profilului de serviciu"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Nu s-a putut configura profilul de serviciu. Contactați departamentul IT sau încercați din nou mai târziu."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Dispozitivul dvs. nu acceptă profiluri de serviciu"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Profilurile de serviciu trebuie configurate de proprietarul dispozitivului"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Profilul dvs. de lucru nu este acceptat de aplicația de lansare. Va trebui să comutați la o aplicație de lansare compatibilă."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Anulați"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Utilizatorul dispozitivului de serviciu"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Configurarea dispozitivului"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Se procesează datele de configurare..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Se conectează la Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Se descarcă aplicația de administrare..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Se instalează aplicația de administrare..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Se setează proprietarul dispozitivului..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Opriți configurarea?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Sigur doriți să opriți configurarea și să ștergeți datele de pe dispozitiv?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Anulați"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Resetați"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Configurarea nu s-a putut efectua. Contactați departamentul IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Acest dispozitiv este deja configurat"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Nu se poate conecta la Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Nu se poate utiliza aplicația de administrare din cauza unei erori de sumă de control. Contactați departamentul IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Eroare la descărcarea aplicației de administrare"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Nu se poate utiliza aplicația de administrare. Este deteriorată sau lipsesc componente. Contactați departamentul IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Eroare la instalarea aplicației de administrare"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Aplicația de administrare nu este instalată pe dispozitiv"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Opriți configurarea?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Sigur doriți să opriți configurarea?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nu"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Da"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Se anulează..."</string>
+</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
new file mode 100644
index 0000000..8011fa5
--- /dev/null
+++ b/res/values-ru/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Администратор устройства"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ошибка"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Настройка профиля"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ваша организация управляет этим профилем и обеспечивает его защиту. Ко всем остальным данным, приложениям и настройкам на устройстве есть доступ только у вас."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Доступ к этому профилю потребуется следующему приложению:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Настроить"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Настройка рабочего профиля..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Администратор может контролировать настройки, приложения и параметры доступа к корпоративным ресурсам в этом профиле, а также связанные с ним данные, например сведения о местоположении или действиях в Сети."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Администратор может контролировать настройки, приложения и параметры доступа к корпоративным ресурсам на этом устройстве, а также связанные с ним данные, например сведения о местоположении или действиях в Сети."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Обратитесь к администратору за дополнительной информацией, в том числе политикой конфиденциальности вашей организации."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Подробнее…"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Отмена"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ОК"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Рабочий профиль"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"На этом устройстве уже есть рабочий профиль. Удалить его?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Удалить этот рабочий профиль? Все его данные также будут удалены."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Удалить"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Отмена"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Чтобы продолжить настройку рабочего профиля, необходимо зашифровать устройство. На это может потребоваться время."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Отмена"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Зашифровать"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифрование завершено"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Нажмите, чтобы продолжить настройку рабочего профиля"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Не удалось настроить рабочий профиль. Обратитесь в отдел технической поддержки вашей компании или повторите попытку позже."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Устройство не поддерживает рабочие профили"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Настройку рабочего профиля должен выполнять владелец устройства"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Эта панель запуска не поддерживает рабочие профили. Выберите совместимую панель."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Отмена"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ОК"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Пользователь управляемого устройства"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Настройте устройство"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Обработка данных..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Подключение к Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Скачивание приложения для администрирования..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Установка приложения для администрирования..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Настройка владельца устройства..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Прервать настройку?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Прервать настройку и удалить все данные с устройства?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Отмена"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ОК"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Сброс"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Не удалось настроить устройство. Обратитесь в отдел технической поддержки вашей компании."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Настройка уже выполнена"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Не удалось подключиться к сети Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Нельзя использовать приложение для администрирования из-за ошибки при проверке контрольной суммы. Обратитесь в отдел технической поддержки вашей компании."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Не удалось скачать приложение для администрирования"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Нельзя использовать приложение для администрирования, так как в нем не хватает компонентов или они повреждены. Обратитесь в отдел технической поддержки вашей компании."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Не удалось установить приложение для администрирования"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"На вашем устройстве не установлено приложение для администрирования"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Подтвердите действие"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Прервать настройку?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Нет"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Да"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Отмена..."</string>
+</resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..5e57b16
--- /dev/null
+++ b/res/values-si-rLK/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"උපාංග වෙන් කිරීම"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"අපොයි!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"ඔබගේ පැතිකඩ සකසන්න"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"ඔබගේ සංවිධානය මෙම පැතිකඩ පාලනය කරයි සහ එය ආරක්ෂිතව තබයි. ඔබගේ උපාංගයේ අනෙක් සියලු ඔබ පාලනය කරයි."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"මෙම පැතිකඩ ප්‍රවේශ වීමට ඊළගට එන යෙදුම් වලට අවශ්‍යය:"</string>
+    <string name="set_up" msgid="7012862095553564169">"සකසන්න"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"ඔබගේ වැඩ කරන පැතිකඩ සකසමින්..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"ජාල ක්‍රියාකාරකම් සහ ඔබගේ උපාංගයේ ස්ථාන තොරතුරු ඇතුළුව මෙම පැතිකඩ සමඟ සම්බන්ධිත සැකසීම්, සංස්ථාපිත ප්‍රවේශය, යෙදුම් සහ දත්ත නිරීෂණය සහ කළමනාකරණය කිරීමේ හැකියාව ඔබගේ පාලකයාට තිබේ."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"ජාල ක්‍රියාකාරකම් සහ ඔබගේ උපාංගයේ ස්ථාන තොරතුරු ඇතුළුව මෙම උපාංගය සමඟ සම්බන්ධිත සැකසීම්, සංස්ථාපිත ප්‍රවේශය, යෙදුම් සහ දත්ත නිරීෂණය සහ කළමනාකරණය කිරීමේ හැකියාව ඔබගේ පාලකයාට තිබේ."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"ඔබගේ සංවිධානයේ පෞද්ගලිකත්ව ප්‍රතිපත්ති ඇතුළුව, තව තොරතුරු සඳහා ඔබගේ පාලකයා සම්බන්ධ කරගන්න."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"තව දැනගන්න"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"අවලංගු කරන්න"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"හරි"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"කාර්යාල පැතිකඩ"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"ඔබගේ උපාංගයේ දැනටමත් කාර්යාල පැතිකඩක් තිබේ.ඔබට එය ඉවත් කිරීමට අවශ්‍ය ද?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"මෙම කාර්යාල පැතිකඩ ඉවත් කිරීමට අවශ්‍ය බව ඔබට සහතිකද? එහි සියලුම දත්ත මැකෙවී."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"ඉවත් කරන්න"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"අවලංගු කරන්න"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"ඔබගේ කාර්යාල පැතිකඩේ සැකසීම ඉදිරියට කරගෙන යෑමට, ඔබගේ උපාංගය සංකේතනය කිරීමට ඔබට අවශ්‍ය වේ. මෙයට ටික වෙලාවක් ගත වේ."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"අවලංගු කරන්න"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"සංකේතනය"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"සංකේතනය සම්පූර්ණයි"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"ඔබගේ වැඩ පැතිකඩ සැකසීම දිගටම කිරීමට ස්පර්ශ කරන්න"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"ඔබගේ කාර්යාල පැතිකඩ සැකසීමට නොහැකි විය. ඔබගේ IT අංශය සම්බන්ධ කර ගන්න හෝ පසුව නැවත උත්සාහ කරන්න."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"ඔබගේ උපාංගය කාර්යාල පැතිකඩ වෙත සහය දක්වන්නේ නැත."</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Work profiles need to be set up by the device owner"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"මෙම දියත් කරන යෙදුම මඟින් ඔබගේ කාර්යාල පැතිකඩට සහාය ලබා නොදේ. අනුකූල දියත් කරනයකට ඔබට මාරු වීමට අවශ්‍ය වේ."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"අවලංගු කරන්න"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"හරි"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"කාර්යාල උපාංගයේ පරිශීලකයා"</string>
+    <string name="setup_device" msgid="6725265673245816366">"ඔබගේ උපාංගය සකසන්න"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"ස්ථාපන දත්ත සකසමින්..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi වෙත සම්බන්ධ වෙමින්..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"පරිපාලක යෙදුම බාගත කරමින්..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"පරිපාලක යෙදුම ස්ථාපනය කරමින්..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"උපාංග හිමිකරු සකසමින්..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"සැකසීම නැවත් වන්නද?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"සැකසීම නැවත්වීමට සහ ඔබගේ උපාංගයේ දත්ත මැකීමට අවශ්‍ය බව ඔබට සහතිකද?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"අවලංගු කරන්න"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"හරි"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"යළි පිහිටුවන්න"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"ඔබගේ උපාංගය කළ නොහැක. ඔබගේ IT අංශය සම්බන්ධ කරගන්න."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"මෙම උපාංගය දැනටමත් සකසා තිබේ."</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi වෙත සම්බන්ධ විය නොහැක"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Checksum දෝෂය හේතුවෙන් පරිපාලක යෙදුම භාවිතා කළ නොහැක. ඔබගේ IT අංශය සම්බන්ධ කරගන්න."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"පරිපාලක යෙදුම බාගැනීම කළ නොහැක."</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"පරිපාලක යෙදුම භාවිතා කළ නොහැක. එහි අංශ නැත හෝ විකෘති වී ඇත. ඔබගේ IT අංශය සම්බන්ධ කරගන්න."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"පරිපාලක යෙදුම ස්ථාපනය කළ නොහැක."</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"ඔබගේ උපාංගය මත පරිපාලක යෙදුම ස්ථාපනය කර නොමැත."</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"සැකසීම නැවත් වන්නද?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"සකස් කිරීම නැවත් වීමට ඔබට අවශ්‍ය බව ඔබට සහතිකද?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"නැත"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"ඔව්"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"අවලංගු කරමින්…"</string>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
new file mode 100644
index 0000000..27cde1e
--- /dev/null
+++ b/res/values-sk/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Poskytovateľ zariadenia"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ojoj!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Nastavenie profilu"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Tento profil riadi a zabezpečuje vaša spoločnosť. Všetko ostatné na tomto zariadení máte pod kontrolou vy."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Nasledujúca aplikácia bude potrebovať prístup k tomuto profilu:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Nastaviť"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Nastavuje sa pracovný profil..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Správca môže sledovať a spravovať nastavenia, firemný prístup, aplikácie a údaje súvisiace s týmto profilom, vrátane sieťovej aktivity a informácií o polohe zariadenia."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Správca môže sledovať a spravovať nastavenia, firemný prístup, aplikácie a údaje súvisiace s týmto zariadením, vrátane sieťovej aktivity a informácií o polohe zariadenia."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Viac informácií (vrátane pravidiel ochrany osobných údajov vašej organizácie) vám poskytne správca."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Viac informácií"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Zrušiť"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Pracovný profil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Na svojom zariadení už máte pracovný profil. Chcete ho odstrániť?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Naozaj chcete odstrániť tento pracovný profil? Všetky jeho údaje budú odstránené."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Odstrániť"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Zrušiť"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Ak chcete pokračovať v nastavovaní pracovného profilu, musíte zašifrovať svoje zariadenie. Môže to chvíľu trvať."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Zrušiť"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Šifrovať"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Šifrovanie bolo dokončené"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Klepnutím pokračujte v nastavení pracovného profilu."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Nastavenie pracovného profilu sa nepodarilo. Kontaktujte oddelenie IT alebo to skúste znova neskôr."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Vaše zariadenie nepodporuje pracovné profily"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Pracovné profily môže nastaviť iba vlastník zariadenia"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Táto aplikácia spúšťača nepodporuje váš pracovný profil. Musíte prepnúť na spúšťač, ktorý je kompatibilný."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Zrušiť"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Používateľ pracovného zariadenia"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Nastavenie zariadenia"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Spracovávajú sa údaje nastavenia..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Pripája sa k sieti Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Sťahuje sa aplikácia na správu..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Inštaluje sa aplikácia na správu..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Nastavuje sa vlastník zariadenia..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Zastaviť nastavovanie?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Naozaj chcete nastavenie ukončiť a odstrániť údaje zariadenia?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Zrušiť"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Obnoviť"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Nastavenie zariadenia sa nepodarilo. Kontaktujte oddelenie IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Toto zariadenie je už nastavené"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Nepodarilo sa pripojiť k sieti Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Pre chybu kontrolného súčtu sa aplikácia na správu nedá použiť. Kontaktujte oddelenie IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Aplikáciu na správu sa nepodarilo stiahnuť"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Aplikácia na správu sa nedá použiť. Buď v nej chýbajú niektoré komponenty, alebo je poškodená. Kontaktujte oddelenie IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Aplikáciu na správu sa nepodarilo nainštalovať"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Na vašom zariadení nie je nainštalovaná aplikácia na správu"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Zastaviť nastavovanie?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Naozaj chcete zrušiť nastavovanie?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nie"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Áno"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Ruší sa..."</string>
+</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
new file mode 100644
index 0000000..8fa209d
--- /dev/null
+++ b/res/values-sl/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Orodje za omogočanje uporabe naprav"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ojoj!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Nastavite svoj profil"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Vaša organizacija nadzira ta profil in skrbi za njegovo varnost. Vi nadzirate vse drugo v napravi."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Ta aplikacija bo morala dostopati do tega profila:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Nastavitev"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Nastavljanje delovnega profila ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Skrbnik lahko nadzira in upravlja nastavitve, dostop za podjetje, aplikacije in podatke, povezane s tem profilom, vključno z omrežno dejavnostjo in podatki o lokaciji naprave."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Skrbnik lahko nadzira in upravlja nastavitve, dostop za podjetje, aplikacije in podatke, povezane s to napravo, vključno z omrežno dejavnostjo in podatki o lokaciji naprave."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Za več informacij, vključno s pravilniki organizacije o zasebnosti, se obrnite na skrbnika."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Več o tem"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Prekliči"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"V redu"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Delovni profil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"V napravi že imate delovni profil. Ga želite odstraniti?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Ste prepričani, da želite odstraniti ta delovni profil? Vsi podatki v njem bodo izbrisani."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Odstrani"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Prekliči"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Če želite nadaljevati z nastavitvijo delovnega profila, morate šifrirati napravo. To lahko traja nekaj časa."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Prekliči"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Šifriranje"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Šifriranje je dokončano"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Če želite nadaljevati z nastavljanjem delovnega profila, se dotaknite."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Delovnega profila ni bilo mogoče nastaviti. Obrnite se na oddelek za IT ali poskusite znova pozneje."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Naprava ne podpira delovnih profilov"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Delovne profile lahko nastavi samo lastnik naprave."</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ta aplikacija zaganjalnika ne podpira vašega delovnega profila. Uporabiti morate združljiv zaganjalnik."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Prekliči"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"V redu"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Uporabnik delovne naprave"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Nastavitev naprave"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Obdelava podatkov za nastavitev ..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Vzpostavljanje povezave z omrežjem Wi-Fi ..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Prenašanje skrbniške aplikacije ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Nameščanje skrbniške aplikacije ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Nastavljanje lastnika naprave ..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Želite ustaviti namestitev?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Ali želite res ustaviti nastavitev in izbrisati podatke v napravi?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Prekliči"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"V redu"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Ponastavi"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Naprave ni bilo mogoče nastaviti. Obrnite se na oddelek za IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Ta naprava je že nastavljena"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Z omrežjem Wi-Fi se ni mogoče povezati"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Skrbniške aplikacije ni bilo mogoče uporabiti zaradi napake kontrolne vsote. Obrnite se na oddelek za IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Skrbniške aplikacije ni bilo mogoče prenesti"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Skrbniške aplikacije ni mogoče uporabljati. Manjkajo ji komponente ali pa je poškodovana. Obrnite se na oddelek za IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Skrbniške aplikacije ni bilo mogoče namestiti"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Skrbniška aplikacija ni nameščena v napravi"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Želite ustaviti namestitev?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Ali res želite ustaviti namestitev?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ne"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Da"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Preklic ..."</string>
+</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
new file mode 100644
index 0000000..3cbb52a
--- /dev/null
+++ b/res/values-sr/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Додељивач уређаја"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Упс!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Подесите профил"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Организација контролише и штити овај профил. Ви контролишете све остало на уређају."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Следећа апликација мора да приступи овом профилу:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Подеси"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Подешавање профила за посао..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Администратор може да надгледа подешавања, корпоративни приступ, апликације и податке повезане са профилом, укључујући мрежну активност и информације о локацији уређаја, као и да управља њима."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Администратор може да надгледа подешавања, корпоративни приступ, апликације и податке повезане са овим уређајем, укључујући мрежну активност и информације о локацији уређаја, као и да управља њима."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Контактирајте администратора за више информација, укључујући политику приватности организације."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Сазнајте више"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Откажи"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Потврди"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Профил за посао"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Већ имате пословни профил на уређају. Желите ли да га уклоните?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Желите ли стварно да уклоните овај пословни профил? Избрисаћете све његове податке."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Уклони"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Откажи"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Да бисте наставили са подешавањем пословног профила, морате да шифрујете уређај. То може да потраје."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Откажи"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Шифруј"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифровање је довршено"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Додирните да бисте наставили са подешавањем пословног профила"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Није могуће подесити профил за посао. Контактирајте ИТ сектор или покушајте поново касније."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Уређај не подржава пословне профиле"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Пословне профиле мора да подеси власник уређаја"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ова апликација покретача не подржава пословни профил. Морате да пређете на компатибилан покретач."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Откажи"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Потврди"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Корисник пословног уређаја"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Подешавање уређаја"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Обрађују се подаци подешавања..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Повезивање са Wi-Fi-јем..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Преузимање апликације за администраторе..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Инсталирање апликације за администраторе..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Подешавање власника уређаја..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Желите ли да зауставите подешавање?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Да ли стварно желите да зауставите подешавање и да избришете податке уређаја?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Откажи"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Потврди"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Ресетуј"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Није могуће подесити уређај. Контактирајте ИТ сектор."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Овај уређај је већ подешен"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Повезивање са Wi-Fi мрежом није успело"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Није могуће користити апликацију за администраторе због грешке у контролном збиру. Контактирајте ИТ сектор."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Преузимање апликације за администраторе није успело"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Није могуће користити апликацију за администраторе. Недостају јој компоненте или је оштећена. Контактирајте ИТ сектор."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Инсталирање апликације за администраторе није успело"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Апликација за администраторе није инсталирана на уређају"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Желите ли да зауставите подешавање?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Желите ли стварно да зауставите подешавање?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Не"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Да"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Отказује се..."</string>
+</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
new file mode 100644
index 0000000..eea5d03
--- /dev/null
+++ b/res/values-sv/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Device Provisioner"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hoppsan!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Konfigurera profilen"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Organisationen kontrollerar profilen och håller den säker. Du har kontroll över allt annat på enheten."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Följande app behöver åtkomst till profilen:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Konfigurera"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Konfigurerar arbetsprofilen …"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administratören har möjlighet att kontrollera och hantera inställningar, företagsåtkomst, appar och data som är kopplade till profilen, inklusive nätverksaktivitet och enhetens platsuppgifter."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administratören kan övervaka och hantera inställningar, företagsåtkomst, appar och data på den här enheten, inklusive nätverksaktivitet och enhetens platsuppgifter."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Kontakta administratören om du vill veta mer, inklusive om du vill veta mer om organisationens sekretesspolicy."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Läs mer"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Avbryt"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Arbetsprofil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Du har redan en arbetsprofil på enheten. Vill du ta bort den?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Vill du ta bort den här arbetsprofilen? All data kommer att raderas."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Ta bort"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Avbryt"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Du måste kryptera enheten om du vill fortsätta att konfigurera arbetsprofilen. Det kan ta ett tag."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Avbryt"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Kryptera"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Krypteringen är klar"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Tryck här om du vill fortsätta konfigurera din jobbprofil"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Det gick inte att konfigurera arbetsprofilen. Kontakta IT-avdelningen eller försök igen senare."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Enheten stöder inte arbetsprofiler"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Arbetsprofiler kan endast konfigureras av enhetens ägare"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Din jobbprofil stöds inte av det här startprogrammet. Du måste byta till ett kompatibelt startprogram."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Avbryt"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Person som använder en arbetsenhet"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Konfigurera enheten"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Bearbetar konfigurationsdata …"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Ansluter till Wi-Fi …"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Hämtar administrationsappen …"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Installerar administrationsappen …"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Ställer in enhetsägare …"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Vill du avsluta konfigurationen?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Vill du avsluta konfigureringen och radera data på enheten?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Avbryt"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Återställ"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Det gick inte att konfigurera enheten. Kontakta IT-avdelningen."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Enheten har redan konfigurerats"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Det gick inte att ansluta till Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Det gick inte att använda administrationsappen på grund av en felaktig kontrollsumma. Kontakta IT-avdelningen."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Det gick inte att hämta administrationsappen"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Administrationsappen kan inte användas. Komponenter saknas eller appen har skadats. Kontakta IT-avdelningen."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Det gick inte att installera administrationsappen"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Administrationsappen har inte installerats på enheten"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Vill du avsluta konfigurationen?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Vill du avsluta konfigurationen?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Nej"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ja"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Avslutar ..."</string>
+</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
new file mode 100644
index 0000000..ec4bd23
--- /dev/null
+++ b/res/values-sw/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Kitoaji cha Kifaa"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Lo!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Weka wasifu wako"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Shirika lako linadhibiti kifaa chako na kukiweka salama. Unadhibiti vitu vingine vyote kwenye kifaa chako."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Programu ifuatayo itahitaji kufikia wasifu huu:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Sanidi"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Inasanidi wasifu wako wa kazi..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Msimamizi wako ana uwezo wa kufuatilia na kusimamia mipangilio, ufikiaji wa kampuni, programu na data inayohusiana na wasifu, ikiwa ni pamoja na shughuli kwenye mtandao na maelezo kuhusu kilipo kifaa chako."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Msimamizi wako ana uwezo wa kufuatilia na kusimamia mipangilio, ufikiaji wa kampuni, programu, na data inayohusiana na kifaa hiki, ikiwa ni pamoja na shughuli kwenye mtandao na maelezo kuhusu kilipo kifaa chako."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Wasiliana na msimamizi wako kwa maelezo zaidi, ikiwa ni pamoja na sera za faragha za shirika lako."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Pata maelezo zaidi"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Ghairi"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"SAWA"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Wasifu wa kazini"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Tayari una wasifu wa kazini kwenye kifaa hiki. Je, unataka kuondoa wasifu huo?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Je, una uhakika unataka kuondoa wasifu huu wa kazini? Data yake yote itafutwa."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Ondoa"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Ghairi"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Ili uendelee kusanidi wasifu wako wa kazini, utahitaji kusimba kifaa chako kwa njia fiche. Hatua hii inaweza kuchukua muda."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Ghairi"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Simba kwa njia fiche"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Usimbaji fiche umekamilika"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Gusa ili uendelee kusanidi wasifu wako wa kazini"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Haikuweza kusanidi wasifu wako wa kazi. Wasiliana na idara yako ya Teknolojia ya Habari au ujaribu tena baadaye."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Kifaa chako hakitumii wasifu wa kazini"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Wasifu wa kazini unahitaji kusanidiwa na mmiliki wa kifaa"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Wasifu wako wa kazini hauwezi kutumiwa na kifungua programu hiki. Itabidi ubadili hadi kifungua programu kinachooana."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Ghairi"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Sawa"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Mtumiaji wa kifaa cha kazini"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Sanidi kifaa chako"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Inachakata data ya usanidi..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Inaunganisha kwenye Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Inapakua programu ya msimamizi..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Inasakinisha programu ya msimamizi..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Inasanidi anayemiliki kifaa..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Ungependa kuacha kusanidi?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Una uhakika unataka kuacha kusanidi na unataka kufuta data iliyomo kwenye kifaa chako?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Ghairi"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"SAWA"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Weka upya"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Haikuweza kusanidi kifaa chako. Wasiliana na idara yako ya Teknolojia ya Habari."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Kifaa hiki tayari kimesanidiwa"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Haikuweza kuunganisha kwenye Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Haikuweza kutumia programu ya msimazi kutokana na hitilafu ya checksum. Wasiliana na idara yako ya Teknolojia ya Habari."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Haikuweza kupakua programu ya msimamizi"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Haiwezi kutumia programu ya msimamizi. Inakosa vipengele au ina hitilafu. Wasiliana na idara yako ya Teknolojia ya Habari."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Haikuweza kusakinisha programu ya msimamizi"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Programu ya msimamizi haijasakinishwa kwenye kifaa chako"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Ungependa kuacha kusanidi?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Je, una uhakika unataka kuacha kusanidi?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Hapana"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ndiyo"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Inaghairi..."</string>
+</resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
new file mode 100644
index 0000000..e666568
--- /dev/null
+++ b/res/values-ta-rIN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"சாதன ஃப்ரோவிஷனர்"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"அச்சச்சோ!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"உங்கள் சுயவிவரத்தை அமைக்கவும்"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"உங்கள் நிறுவனம், இந்தச் சுயவிவரத்தைக் கட்டுப்படுத்தி, அதைப் பாதுகாப்பாக வைக்கிறது. உங்கள் சாதனத்தில் இருந்து எல்லாவற்றையும் கட்டுப்படுத்தலாம்."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"பின்வரும் பயன்பாடு இந்தச் சுயவிவரத்தை அணுக வேண்டும்:"</string>
+    <string name="set_up" msgid="7012862095553564169">"அமை"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"பணி சுயவிவரத்தை அமைக்கிறது..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"நெட்வொர்க் செயல்பாடு, சாதன இடத் தகவல் உட்பட சுயவிவரத்துடன் தொடர்புடைய அமைப்புகள், நிறுவன அணுகல், பயன்பாடுகள் மற்றும் தரவு ஆகியவற்றை உங்கள் நிர்வாகியால் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும்."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"உங்கள் நிர்வாகியால் நெட்வொர்க் செயல்பாடு, சாதனத்தின் இருப்பிடத் தகவல் உட்பட இந்தச் சாதனத்துடன் தொடர்புடைய அமைப்புகள், நிறுவன அணுகல், பயன்பாடுகள் மற்றும் தரவைக் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும்."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"உங்கள் நிறுவனத்தின் தனியுரிமைக் கொள்கைகள் உட்பட, கூடுதல் தகவலுக்கு நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"மேலும் அறிக"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"ரத்துசெய்"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"சரி"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"பணி சுயவிவரம்"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"சாதனத்தில் ஏற்கனவே பணி சுயவிவரத்தை வைத்துள்ளீர்கள். அதை அகற்றவா?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"பணி சுயவிவரத்தை நிச்சயமாக அகற்றவா? இதன் எல்லா தரவும் நீக்கப்படும் என்பதை நினைவில் கொள்ளவும்."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"அகற்று"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"ரத்துசெய்"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"பணி சுயவிவரம் அமைப்பதைத் தொடர, சாதனத்தை மறையாக்க வேண்டும். அதற்குச் சிறிது நேரம் ஆகலாம்."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"ரத்துசெய்"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"மறையாக்கு"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"குறியாக்கம் முடிந்தது"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"உங்கள் பணி சுயவிவரத்தை அமைப்பதைத் தொடரத் தொடவும்"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"பணி சுயவிவரத்தை அமைக்க முடியவில்லை. IT துறையைத் தொடர்புகொள்ளவும் அல்லது பிறகு முயலவும்."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"பணி சுயவிவரங்களைச் சாதனம் ஆதரிக்காது"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"பணி சுயவிவரங்களைச் சாதன உரிமையாளர் தான் அமைக்க வேண்டும்"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"இந்தத் துவக்கி பயன்பாடு, பணி சுயவிவரத்தை ஆதரிக்கவில்லை. பொருந்தும் துவக்கிக்கு மாற்ற வேண்டும்."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"ரத்துசெய்"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"சரி"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"பணியிடச் சாதனத்தின் பயனர்"</string>
+    <string name="setup_device" msgid="6725265673245816366">"சாதனத்தை அமை"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"அமைவு தரவைச் செயல்படுத்துகிறது..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"வைஃபை உடன் இணைக்கிறது..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"நிர்வாகப் பயன்பாட்டை இறக்குகிறது..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"நிர்வாகப் பயன்பாட்டை நிறுவுகிறது..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"சாதன உரிமையாளரை அமைக்கிறது..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"அமைப்பதை நிறுத்தவா?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"அமைவை நிறுத்தி, சாதன தரவை அழிக்கவா?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"ரத்துசெய்"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"சரி"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"மீட்டமை"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"சாதனத்தை அமைக்க முடியவில்லை. IT துறையைத் தொடர்புகொள்ளவும்."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"சாதனம் ஏற்கனவே அமைக்கப்பட்டுள்ளது"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"வைஃபை உடன் இணைக்க முடியவில்லை"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"செக்-சம் பிழைக் காரணமாக நிர்வாகப் பயன்பாட்டைப் பயன்படுத்த முடியவில்லை. IT துறையைத் தொடர்புகொள்ளவும்."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"நிர்வாகிப் பயன்பாட்டை இறக்க முடியவில்லை"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"நிர்வாகப் பயன்பாட்டைப் பயன்படுத்த முடியவில்லை. இதில் கூறுகள் இல்லாமல் இருக்கலாம் அல்லது இது சேதமடைந்து இருக்கலாம். IT துறையைத் தொடர்புகொள்ளவும்."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"நிர்வாகிப் பயன்பாட்டை நிறுவ முடியவில்லை"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"சாதனத்தில் நிர்வாகிப் பயன்பாடு நிறுவப்படவில்லை"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"அமைப்பதை நிறுத்தவா?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"அமைப்பதை நிச்சயமாக நிறுத்தவா?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"வேண்டாம்"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"ஆம்"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"ரத்துசெய்கிறது..."</string>
+</resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
new file mode 100644
index 0000000..45ef848
--- /dev/null
+++ b/res/values-te-rIN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"పరికర కేటాయింపుదారు"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"అయ్యో!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"మీ ప్రొఫైల్‌ను సెటప్ చేయండి"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"మీ సంస్థ ఈ ప్రొఫైల్‌ను నియంత్రిస్తుంది మరియు దాన్ని సురక్షితంగా ఉంచుతుంది. మీరు మీ పరికరంలో మిగిలిన అన్నింటిని నియంత్రిస్తారు."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"క్రింది అనువర్తనం ఈ ప్రొఫైల్‌ను ప్రాప్యత చేయాలి:"</string>
+    <string name="set_up" msgid="7012862095553564169">"సెటప్ చేయి"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"మీ కార్యాలయ ప్రొఫైల్‌ను సెటప్ చేస్తోంది..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"మీ నిర్వాహకుడు నెట్‌వర్క్ కార్యాచరణ మరియు మీ పరికర స్థాన సమాచారంతో సహా సెట్టింగ్‌లు, కార్పొరేట్ ప్రాప్యత, అనువర్తనాలు మరియు ప్రొఫైల్‌తో అనుబంధించబడిన డేటాని పర్యవేక్షించగల మరియు నిర్వహించగల సామర్థ్యాన్ని కలిగి ఉన్నారు."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"మీ నిర్వాహకుడు నెట్‌వర్క్ కార్యాచరణ మరియు మీ పరికర స్థాన సమాచారంతో సహా సెట్టింగ్‌లు, కార్పొరేట్ ప్రాప్యత, అనువర్తనాలు మరియు ఈ పరికరంతో అనుబంధించబడిన డేటాని పర్యవేక్షించగల మరియు నిర్వహించగల సామర్థ్యాన్ని కలిగి ఉన్నారు."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"మీ సంస్థ గోప్యతా విధానాలతో సహా, మరింత సమాచారం కోసం మీ నిర్వాహకుడిని సంప్రదించండి."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"మరింత తెలుసుకోండి"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"రద్దు చేయి"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"సరే"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"కార్యాలయ ప్రొఫైల్‌"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"మీరు ఇప్పటికే మీ పరికరంలో కార్యాలయ ప్రొఫైల్‌ను కలిగి ఉన్నారు. మీరు దాన్ని తీసివేయాలనుకుంటున్నారా?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"మీరు ఖచ్చితంగా ఈ కార్యాలయ ప్రొఫైల్‌ను తీసివేయాలనుకుంటున్నారా? అలా చేస్తే దాని డేటా మొత్తం తొలగించబడుతుంది."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"తీసివేయి"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"రద్దు చేయి"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"మీరు మీ కార్యాలయ ప్రొఫైల్‌ని సెటప్ చేయడం కొనసాగించడానికి, మీ పరికరాన్ని గుప్తీకరించాలి. దీనికి కొంత సమయం పట్టవచ్చు."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"రద్దు చేయి"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"గుప్తీకరించు"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"గుప్తీకరణ పూర్తయింది"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"మీ కార్యాలయ ప్రొఫైల్‌ను సెటప్ చేయడాన్ని కొనసాగించడానికి తాకండి"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"మీ కార్యాలయ ప్రొఫైల్‌ను సెటప్ చేయడం సాధ్యపడలేదు. మీ IT విభాగాన్ని సంప్రదించండి లేదా తర్వాత మళ్లీ ప్రయత్నించండి."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"మీ పరికరం కార్యాలయ ప్రొఫైల్‌లకు మద్దతు ఇవ్వదు"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"కార్యాలయ ప్రొఫైల్‌లను పరికరం యజమాని సెటప్ చేయాలి"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"మీ కార్యాలయ ప్రొఫైల్‌కు ఈ లాంచర్ అనువర్తనం మద్దతు ఇవ్వదు. మీరు అనుకూల లాంచర్‌కు మారాలి."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"రద్దు చేయి"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"సరే"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"కార్యాలయ పరికర వినియోగదారు"</string>
+    <string name="setup_device" msgid="6725265673245816366">"మీ పరికరాన్ని సెటప్ చేయండి"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"సెటప్ డేటాను ప్రాసెస్ చేస్తోంది..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fiకి కనెక్ట్ చేస్తోంది..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"నిర్వాహక అనువర్తనాన్ని డౌన్‌లోడ్ చేస్తోంది..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"నిర్వాహక అనువర్తనం ఇన్‌స్టాల్ చేస్తోంది..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"పరికర యజమానిని సెట్ చేస్తోంది..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"సెటప్ చేయడం ఆపివేయాలా?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"మీరు ఖచ్చితంగా మీ పరికరాన్ని సెట్ చేయడం ఆపివేసి, అందులోని డేటాని తీసివేయాలనుకుంటున్నారా?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"రద్దు చేయి"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"సరే"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"రీసెట్ చేయి"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"మీ పరికరాన్ని సెటప్ చేయడం సాధ్యపడలేదు. మీ IT విభాగాన్ని సంప్రదించండి."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"ఈ పరికరం ఇప్పటికే సెటప్ చేయబడింది"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fiకి కనెక్ట్ చేయడం సాధ్యపడలేదు"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"చెక్‌సమ్ లోపం కారణంగా నిర్వాహక అనువర్తనాన్ని ఉపయోగించడం సాధ్యపడలేదు. మీ IT విభాగాన్ని సంప్రదించండి."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"నిర్వాహక అనువర్తనాన్ని డౌన్‌లోడ్ చేయడం సాధ్యపడలేదు"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"నిర్వాహక అనువర్తనాన్ని ఉపయోగించడం సాధ్యపడదు. ఇందులో కొన్ని భాగాలు లేవు లేదా పాడైంది. మీ IT విభాగాన్ని సంప్రదించండి."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"నిర్వాహక అనువర్తనాన్ని ఇన్‌స్టాల్ చేయడం సాధ్యపడలేదు"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"మీ పరికరంలో నిర్వాహక అనువర్తనం ఇన్‌స్టాల్ చేయబడలేదు"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"సెటప్ చేయడం ఆపివేయాలా?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"మీరు ఖచ్చితంగా సెటప్ చేయడాన్ని ఆపివేయాలనుకుంటున్నారా?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"కాదు"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"అవును"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"రద్దు చేస్తోంది..."</string>
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
new file mode 100644
index 0000000..57e4676
--- /dev/null
+++ b/res/values-th/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"ผู้จัดสรรอุปกรณ์"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"อ๊ะ!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"ตั้งค่าโปรไฟล์ของคุณ"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"องค์กรของคุณควบคุมและรักษาความปลอดภัยให้กับโปรไฟล์นี้ คุณเป็นผู้ควบคุมส่วนที่เหลือในอุปกรณ์"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"แอปต่อไปนี้ต้องการเข้าถึงโปรไฟล์นี้:"</string>
+    <string name="set_up" msgid="7012862095553564169">"ตั้งค่า"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"กำลังตั้งค่าโปรไฟล์งานของคุณ..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"ผูัดูแลระบบของคุณสามารถตรวจสอบและจัดการการตั้งค่า การเข้าถึงของบริษัท แอป และข้อมูลที่เชื่อมโยงกับโปรไฟล์ ซึ่งรวมถึงกิจกรรมเครือข่ายและข้อมูลตำแหน่งของอุปกรณ์ด้วย"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"ผู้ดูแลระบบของคุณสามารถตรวจสอบและจัดการการตั้งค่า การเข้าถึงของบริษัท แอป และข้อมูลที่เชื่อมโยงกับอุปกรณ์นี้ รวมถึงกิจกรรมเครือข่ายและข้อมูลตำแหน่งของอุปกรณ์ด้วย"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"ติดต่อผู้ดูแลระบบสำหรับข้อมูลเพิ่มเติม รวมถึงนโยบายส่วนบุคคลขององค์กร"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"เรียนรู้เพิ่มเติม"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"ยกเลิก"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ตกลง"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"โปรไฟล์งาน"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"คุณมีโปรไฟล์งานบนอุปกรณ์อยู่แล้ว คุณต้องการจะนำออกไหม"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"คุณแน่ใจไหมว่าต้องการนำโปรไฟล์งานนี้ออก ระบบจะลบข้อมูลทั้งหมดของโปรไฟล์นี้"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"นำออก"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"ยกเลิก"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"หากต้องการตั้งค่าโปรไฟล์งานต่อ คุณต้องเข้ารหัสอุปกรณ์ ซึ่งอาจใช้เวลาสักครู่หนึ่ง"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"ยกเลิก"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"เข้ารหัส"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"การเข้ารหัสเสร็จสมบูรณ์แล้ว"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"แตะเพื่อตั้งค่าโปรไฟล์งานต่อ"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"ไม่สามารถตั้งค่าโปรไฟล์งานของคุณได้ โปรดติดต่อฝ่ายไอทีหรือลองอีกครั้งในภายหลัง"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"อุปกรณ์ของคุณไม่สนับสนุนโปรไฟล์งาน"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"โปรไฟล์งานต้องได้รับการตั้งค่าโดยเจ้าของอุปกรณ์"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"แอป Launcher นี้ไม่สนับสนุนโปรไฟล์งานของคุณ คุณจะต้องเปลี่ยนเป็น Launcher ที่เข้ากันได้"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"ยกเลิก"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ตกลง"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"ผู้ใช้อุปกรณ์ในการทำงาน"</string>
+    <string name="setup_device" msgid="6725265673245816366">"ตั้งค่าอุปกรณ์"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"กำลังดำเนินการกับข้อมูลการตั้งค่า..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"กำลังเชื่อมต่อ Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"กำลังดาวน์โหลดแอปผู้ดูแลระบบ..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"กำลังติดตั้งแอปผู้ดูแลระบบ..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"กำลังตั้งค่าเจ้าของอุปกรณ์..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"หยุดการตั้งค่าใช่ไหม"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"คุณแน่ใจไหมว่าต้องการหยุดการตั้งค่าและลบข้อมูลอุปกรณ์"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"ยกเลิก"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ตกลง"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"รีเซ็ต"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"ไม่สามารถตั้งค่าอุปกรณ์ของคุณ โปรดติดต่อฝ่ายไอที"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"อุปกรณ์นี้ตั้งค่าไว้แล้ว"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"ไม่สามารถเชื่อมต่อ Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"ไม่สามารถใช้แอปผู้ดูแลระบบได้เนื่องจากมีข้อผิดพลาดเกี่ยวกับ checksum โปรดติดต่อฝ่ายไอทีของคุณ"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"ไม่สามารถดาวน์โหลดแอปผู้ดูแลระบบได้"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"ไม่สามารถใช้แอปผู้ดูแลระบบได้เนื่องจากขาดองค์ประกอบหรือมีข้อขัดข้อง โปรดติดต่อฝ่ายไอทีของคุณ"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"ไม่สามารถติดตั้งแอปผู้ดูแลระบบได้"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"อุปกรณ์ของคุณไม่ได้ติดตั้งแอปผู้ดูแลระบบ"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"หยุดการตั้งค่าใช่ไหม"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"คุณแน่ใจไหมว่าต้องการหยุดการตั้งค่า"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"ไม่"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"ใช่"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"กำลังยกเลิก..."</string>
+</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
new file mode 100644
index 0000000..947cbcf
--- /dev/null
+++ b/res/values-tl/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Provisioner ng Device"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Oops!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"I-set up ang iyong profile"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Kinokontrol ng iyong organisasyon ang profile na ito at pinapanatili itong secure. Ikaw ang kumokontrol sa lahat ng iba pa sa iyong device."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Kakailanganin ng sumusunod na app na i-access ang profile na ito:"</string>
+    <string name="set_up" msgid="7012862095553564169">"I-set up"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Sine-set up ang iyong profile sa trabaho..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"May kakayahan ang iyong administrator na subaybayan at pamahalaan ang mga setting, pangkumpanyang access, mga app at data na nauugnay sa profile, kabilang na ang aktibidad ng network at impormasyon ng lokasyon ng iyong device."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Mayroong kakayahan ang iyong administrator na subaybayan at pamahalaan ang mga setting, corporate na access, app at data na nauugnay sa device na ito, kasama na ang gawain sa network at impormasyon ng lokasyon ng iyong device."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Makipag-ugnayan sa iyong administrator para sa higit pang impormasyon, kasama na ang mga patakaran sa privacy ng iyong organisasyon."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Matuto nang higit pa"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Kanselahin"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Profile sa trabaho"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Mayroon ka nang profile sa trabaho sa iyong device. Gusto mo ba itong alisin?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Sigurado ka bang gusto mong alisin ang profile sa trabaho na ito? Ide-delete ang lahat ng data nito."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Alisin"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Kanselahin"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Upang patuloy na ma-set up ang iyong profile sa trabaho, kakailanganin mong i-encrypt ang iyong device. Maaari itong magtagal nang ilang sandali."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Kanselahin"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"I-encrypt"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Tapos na ang pag-encrypt"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Pindutin upang ipagpatuloy ang pagse-set up sa iyong profile sa trabaho"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Hindi ma-set up ang iyong profile sa trabaho. Makipag-ugnayan sa iyong IT department o subukang muli sa ibang pagkakataon."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Hindi sinusuportahan ng iyong device ang mga profile sa trabaho"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Kailangang i-set up ng may-ari ng device ang mga profile sa trabaho"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ang iyong profile sa trabaho ay hindi sinusuportahan ng launcher app na ito. Kakailanganin mong lumipat sa isang launcher na tugma dito."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Kanselahin"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Ok"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"User ng device sa trabaho"</string>
+    <string name="setup_device" msgid="6725265673245816366">"I-set up ang iyong device"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Pinoproseso ang data ng pag-setup..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Kumokonekta sa Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Dina-download ang admin app..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Ini-install ang admin app..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Itinatakda ang may-ari ng device..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Ihinto ang pagse-set up?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Sigurado ka bang gusto mong ihinto ang pagse-set up at burahin ang data ng iyong device?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Kanselahin"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"I-reset"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Hindi ma-set up ang iyong device. Makipag-ugnayan sa iyong IT department."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Naka-set up na ang device na ito"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Hindi makakonekta sa Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Hindi magamit ang admin app dahil sa isang checksum error. Makipag-ugnayan sa iyong IT department."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Hindi ma-download ang admin app"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Hindi magamit ang admin app. May mga kulang itong bahagi o sira ito. Makipag-ugnayan sa iyong IT department."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Hindi ma-install ang admin app"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Hindi naka-install ang admin app sa iyong device"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Ihinto ang pagse-set up?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Sigurado ka bang gusto mong ihinto ang pagse-set up?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Hindi"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Oo"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Kinakansela..."</string>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
new file mode 100644
index 0000000..b9368c4
--- /dev/null
+++ b/res/values-tr/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Cihaz Temel Hazırlık Aracı"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hata!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Profilinizi oluşturun"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Kuruluşunuz bu profili kontrol eder ve güvenliğini sağlar. Cihazınızdaki geri kalan her şey sizin kontrolünüzdedir."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Aşağıdaki uygulamanın bu profile erişmesi gerekecek:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Oluştur"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"İş profiliniz ayarlanıyor..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Yöneticiniz; ayarları, kurumsal erişimi, uygulamaları ve profille ilişkilendirilen ağ etkinliği ile cihazınızın konum bilgileri gibi verileri izleme ve yönetme olanağına sahiptir."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Yöneticiniz; ayarları, kurumsal erişimi, uygulamaları ve bu cihazla ilişkilendirilen ağ etkinliği ve cihazınızın konum bilgileri gibi verileri izleme ve yönetme olanağına sahiptir."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Kuruluşunuzun gizlilik politikaları da dahil olmak üzere, daha fazla bilgi için yöneticinize başvurun."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Daha fazla bilgi edinin"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"İptal"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"Tamam"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"İş profili"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Cihazınızda zaten bir iş profiliniz var. Mevcut profili kaldırmak istiyor musunuz?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Bu iş profilini kaldırmak istediğinizden emin misiniz? Profilin tüm verileri silinecektir."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Kaldır"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"İptal"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"İş profilinizin kurulum işlemlerine devam etmek için cihazınızı şifrelemelisiniz. Bu işlem biraz zaman alabilir."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"İptal"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Şifrele"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Şifreleme tamamlandı"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"İş profilinizi ayarlamaya devam etmek için dokunun."</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"İş profiliniz ayarlanamadı. BT bölümünüze başvurun veya daha sonra tekrar deneyin."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Cihazınız iş profillerini desteklemiyor"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"İş profillerinin cihaz sahibi tarafından ayarlanması gerekir"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"İş profiliniz bu başlatıcı uygulama tarafından desteklenmiyor. Uyumlu bir başlatıcı uygulamaya geçmeniz gerekecek."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"İptal"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Tamam"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"İş cihazının kullanıcısı"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Cihazınızı kurma"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Kurulum verileri işleniyor..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Kablosuz ağa bağlanıyor..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Yönetim uygulaması indiriliyor..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Yönetim uygulaması yükleniyor..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Cihaz sahibi ayarlanıyor..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Kurulum durdurulsun mu?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Kurulumu durdurmak ve cihazınızın verilerini silmek istediğinizden emin misiniz?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"İptal"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"Tamam"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Sıfırla"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Cihazınızın kurulumu yapılamadı. BT bölümünüze başvurun."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Bu cihaz zaten kurulmuş"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Kablosuz bağlantısı kurulamadı"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Bir sağlama toplamı hatası nedeniyle yönetim uygulaması kullanılamadı. BT bölümünüze başvurun."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Yönetici uygulaması indirilemedi"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Yönetim uygulaması kullanılamıyor. Bileşenleri eksik veya bozuk. BT bölümünüze başvurun."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Yönetici uygulaması yüklenemedi"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Yönetici uygulaması cihazınızda yüklü değil"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Kurulum durdurulsun mu?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Kurulumu durdurmak istediğinizden emin misiniz?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Hayır"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Evet"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"İptal ediliyor..."</string>
+</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
new file mode 100644
index 0000000..ded0c0d
--- /dev/null
+++ b/res/values-uk/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Адміністратор пристрою"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Помилка"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Налаштування профілю"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Ваша організація контролює й захищає цей профіль. Ви контролюєте все інше на пристрої."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Доcтуп до цього профілю потрібен буде такому додатку:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Налаштувати"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Налаштування робочого профілю…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Адміністратор може відстежувати та контролювати налаштування, корпоративний доступ, додатки й дані, пов’язані з цим профілем, зокрема інформацію про активність у мережі чи місцезнаходження пристрою."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Адміністратор може відстежувати та контролювати налаштування, корпоративний доступ, додатки й дані, пов’язані з цим пристроєм, зокрема інформацію про активність у мережі чи місцезнаходження пристрою."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Зв’яжіться з адміністратором, щоб дізнатися більше, зокрема про політику конфіденційності вашої організації."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Докладніше"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Скасувати"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ОК"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Робочий профіль"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"На вашому пристрої вже є робочий профіль. Видалити його?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Справді видалити цей робочий профіль? Усі його дані буде видалено."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Видалити"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Скасувати"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Щоб продовжити налаштування робочого профілю, потрібно зашифрувати пристрій. Це може зайняти деякий час."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Скасувати"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Зашифрувати"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Шифрування завершено"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Торкніться, щоб продовжити налаштування робочого профілю"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Не вдалося налаштувати робочий профіль. Зв’яжіться з ІТ-відділом або повторіть спробу пізніше."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Ваш пристрій не підтримує робочі профілі"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Робочі профілі має налаштовувати власник пристрою"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Цей додаток запуску не підтримує ваш робочий профіль. Потрібно вибрати сумісний додаток запуску."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Скасувати"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Користувач робочого пристрою"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Налаштування пристрою"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Обробка даних для налаштування…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"З’єднання з Wi-Fi…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Завантаження додатка адміністратора…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Встановлення додатка адміністратора…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Налаштування власника пристрою…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Припинити налаштування?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Припинити налаштування й видалити дані пристрою?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Скасувати"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ОК"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Скинути"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Не вдалося налаштувати пристрій. Зв’яжіться з ІТ-відділом."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Цей пристрій уже налаштовано"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Не вдалося під’єднатися до мережі Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Не вдалося скористатися додатком адміністратора через помилку перевірки контрольної суми. Зв’яжіться з ІТ-відділом."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Не вдалося завантажити додаток адміністратора"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Неможливо скористатися додатком адміністратора. У ньому немає певних компонентів або його пошкоджено. Зв’яжіться з ІТ-відділом."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Не вдалося встановити додаток адміністратора"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Додаток адміністратора не встановлено на вашому пристрої"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Припинити налаштування?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Справді припинити налаштування?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Ні"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Так"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Скасування…"</string>
+</resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
new file mode 100644
index 0000000..87b2f9b
--- /dev/null
+++ b/res/values-ur-rPK/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"آلہ کا فراہم کنندہ"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"افوہ!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"اپنا پروفائل ترتیب دیں"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"آپ کی تنظیم اس پروفائل کو کنٹرول کرتی ہے اور اسے محفوظ رکھتی ہے۔ آپ اپنے آلہ پر باقی ہر چیز کنٹرول کرتے ہیں۔"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"مندرجہ ذیل ایپ کو اس پروفائل تک رسائی حاصل کرنے کی ضرورت ہوگی:"</string>
+    <string name="set_up" msgid="7012862095553564169">"ترتیب دیں"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"آپ کا دفتر کا پروفائل ترتیب دیا جا رہا ہے…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"آپ کے منتظم کے پاس نیٹ ورک کی سرگرمی اور آپ کے آلہ کے مقام کی معلومات کے بشمول ترتیبات، کارپوریٹ رسائی، ایپس اور پروفائل کے ساتھ وابستہ ڈیٹا کو مانیٹر کرنے اور ان کا نظم کرنے کی اہلیت ہے۔"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"آپ کے منتظم کے پاس نیٹ ورک کی سرگرمی اور آپ کے آلہ کے مقام کی معلومات کے بشمول ترتیبات، کارپوریٹ رسائی، ایپس اور اس آلہ کے ساتھ وابستہ ڈیٹا کو مانیٹر کرنے اور ان کا نظم کرنے کی اہلیت ہے۔"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"اپنی تنظیم کی رازداری کی پالیسیوں سمیت مزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"مزید جانیں"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"منسوخ کریں"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"ٹھیک ہے"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"دفتر کا پروفائل"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"آپ کے پاس اپنے آلہ پر پہلے ہی ایک دفتری پروفائل ہے۔ کیا آپ اسے ہٹانا چاہتے ہیں؟"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"کیا آپ واقعی یہ دفتری پروفائل ہٹانا چاہتے ہیں؟ اس کا سبھی ڈیٹا حذف کر دیا جائے گا۔"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"ہٹائیں"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"منسوخ کریں"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"اپنا دفتری پروفائل ترتیب دینا جاری رکھنے کیلئے، آپ کو اپنے آلہ کو مرموز کرنے کی ضرورت ہوگی۔ اس میں کچھ وقت لگ سکتا ہے۔"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"منسوخ کریں"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"مرموز کاری کریں"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"مرموز کاری مکمل"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"اپنا دفتری پروفائل ترتیب دینا جاری رکھنے کیلئے ٹچ کریں۔"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"‏آپ کے دفتر کے پروفائل کو ترتیب نہیں دیا جا سکا۔ اپنے IT ڈیپارٹمنٹ سے رابطہ کریں یا بعد میں دوبارہ کوشش کریں۔"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"آپ کا آلہ دفتری پروفائلز کا تعاون نہیں کرتا ہے"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"دفتری پروفائلز کو آلہ کے مالک کے ذریعے ترتیب دیے جانے کی ضرورت ہے"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"آپ کا دفتری پروفائل اس لانچر ایپ کے ذریعے تعاون یافتہ نہیں ہے۔ آپ کو ایک مطابقت پذیر لانچر پر سوئچ کرنے کی ضرورت ہوگی۔"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"منسوخ کریں"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"ٹھیک ہے"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"کام کے آلہ کا صارف"</string>
+    <string name="setup_device" msgid="6725265673245816366">"اپنے آلہ کو ترتیب دیں"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"سیٹ اپ ڈیٹا پر کارروائی کی جا رہی ہے…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"‏Wi-Fi سے منسلک ہو رہا ہے…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"منتظم کی ایپ ڈاؤن لوڈ ہو رہی ہے…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"منتظم کی ایپ انسٹال ہو رہی ہے…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"آلہ کے مالک کو ترتیب دی جا رہی ہے…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"ترتیب دینا بند کریں؟"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"کیا آپ واقعی ترتیب دینے سے روکنا اور اپنے آلہ کے ڈیٹا کو صاف کرنا چاہتے ہیں؟"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"منسوخ کریں"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"ٹھیک ہے"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"دوبارہ ترتیب دیں"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"‏آپ کے آلہ کو ترتیب نہیں دیا جا سکا۔ اپنے IT ڈیپارٹمنٹ سے رابطہ کریں۔"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"یہ آلہ پہلے ہی ترتیب دے دیا گیا ہے"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"‏Wi-Fi سے منسلک نہیں کیا جا سکا"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"‏checksum کی خرابی کی وجہ سے منتظم کی ایپ کا استعمال نہیں کیا جا سکا۔ اپنے IT ڈیپارٹمنٹ سے رابطہ کریں۔"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"منتظم کی ایپ کو ڈاؤن لوڈ نہیں کیا جا سکا"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"‏منتظم کی ایپ کا استعمال نہیں کر سکتے۔ اس میں چھوٹے ہوئے اجزاء ہیں یا یہ خراب ہوگئی ہے۔ اپنے IT ڈیپارٹمنٹ سے رابطہ کریں۔"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"منتظم کی ایپ کو انسٹال نہیں کیا جا سکا"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"منتظم کی ایپ آپ کے آلہ پر انسٹال نہیں ہے"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"ترتیب دینا بند کریں؟"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"کیا آپ واقعی ترتیب دینا بند کرنا چاہتے ہیں؟"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"نہیں"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"ہاں"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"منسوخ کیا جا رہا ہے…"</string>
+</resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
new file mode 100644
index 0000000..679b3cf
--- /dev/null
+++ b/res/values-uz-rUZ/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Qurilma administratori"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Ana, xolos!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Profilni sozlash"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Tashkilotingiz ushbu profilni nazorat qiladi va uni xavfsiz saqlaydi. Qurilmangizdagi boshqa narsalarni o‘zingiz nazorat qilasiz."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Quyidagi ilova ushbu profilga kirishi zarur:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Sozlash"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Ishchi profilingiz sozlanmoqda…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Administratoringiz profil bilan bog‘liq sozlamalar, korporativ kirish huquqi, ilovalar va ma’lumotlarni, jumladan, tarmoqdagi faollik va qurilmangizning joylashuvi haqidagi ma’lumotlarni kuzatishi va boshqarishi mumkin."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Administratoringiz ushbu qurilma bilan bog‘liq sozlamalar, korporativ kirish huquqi, ilova va ma’lumotlarni, jumladan, tarmoqdagi faollik va qurilmangizning joylashuvi haqidagi ma’lumotlarni kuzatishi va boshqarishi mumkin."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Qo‘shimcha ma’lumot olish, jumladan, tashkilotingizning maxfiylik siyosati haqida bilish uchun administratoringizga murojaat qiling."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Batafsil ma’lumot"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Bekor qilish"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Ishchi profil"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Qurilmangizda allaqachon ishchi profil mavjud. Uni o‘chirib tashlashni xohlaysizmi?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Haqiqatan ham ushbu ishchi profilni o‘chirib tashlamoqchimisiz? Undagi barcha ma’lumotlar ham o‘chib ketadi."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"O‘chirish"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Bekor qilish"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Sozlashni davom ettirish uchun qurilmangizni shifrlash lozim. Bu biroz vaqt olishi mumkin."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Bekor qilish"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Shifrlash"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Shifrlash tugallandi"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Ishchi profilingizni sozlashda davom etish uchun bosing"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Ishchi profilingizni sozlab bo‘lmadi. IT bo‘limiga murojaat qiling yoki keyinroq qayta urinib ko‘ring."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Qurilmangiz ishchi profillarni qo‘llab-quvvatlamaydi"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Ishchi profillar qurilma egasi tomonidan sozlanishi lozim"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Ishchi profilingiz ushbu launcher ilovasi tomonidan qo‘llab-quvvatlanmaydi. Mos launcher rejimiga o‘tishingiz lozim."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Bekor qilish"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"OK"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Ishchi qurilma foydalanuvchisi"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Qurilmangizni sozlash"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Sozlash ma’lumotlari qayta ishlanmoqda…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Wi-Fi tarmog‘iga ulanmoqda…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"Administrator ilovasi yuklab olinmoqda…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"Administrator ilovasi o‘rnatilmoqda…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Qurilma egasi belgilanmoqda…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Sozlash to‘xtatilsinmi?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Haqiqatan ham sozlashni to‘xtatib, qurilmangiz ma’lumotlarini o‘chirib tashlamoqchimisiz?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Bekor qilish"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Qayta tiklash"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Qurilmangizni sozlab bo‘lmadi. Kompaniyangizning IT bo‘limiga murojaat qiling."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Ushbu qurilma allaqachon sozlangan"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Wi-Fi tarmog‘iga ulanib bo‘lmadi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Nazorat qiymati bilan bog‘liq muammo tufayli administrator ilovasidan foydalanib bo‘lmadi. IT bo‘limiga murojaat qiling."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Administrator ilovasini yuklab olib bo‘lmadi"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Administrator ilovasidan foydalanib bo‘lmaydi. Unda ba’zi tarkibiy qismlar mavjud emas yoki buzilgan. IT bo‘limiga murojaat qiling."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Administrator ilovasini o‘rnatib bo‘lmadi"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Qurilmangizga administrator ilovasi o‘rnatilmadi"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Sozlash to‘xtatilsinmi?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Haqiqatan ham sozlashni to‘xtatmoqchimisiz?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Yo‘q"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Ha"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Bekor qilinmoqda…"</string>
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
new file mode 100644
index 0000000..34ae373
--- /dev/null
+++ b/res/values-vi/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Nhà cấp phép thiết bị"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Rất tiếc!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Thiết lập hồ sơ của bạn"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Tổ chức của bạn kiểm soát và giữ bảo mật hồ sơ này. Bạn kiểm soát mọi thứ khác trên thiết bị của mình."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Ứng dụng sau cần quyền truy cập vào hồ sơ này:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Thiết lập"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Đang thiết lập hồ sơ công việc..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Quản trị viên của bạn có thể giám sát và quản lý các cài đặt, quyền truy cập của công ty, các ứng dụng và dữ liệu được liên kết với hồ sơ này, bao gồm cả hoạt động mạng và thông tin vị trí của thiết bị."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Quản trị viên của bạn có thể giám sát và quản lý cài đặt, quyền truy cập của công ty, ứng dụng và dữ liệu liên kết với thiết bị này, bao gồm hoạt động mạng và thông tin về vị trí của thiết bị."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Hãy liên hệ với quản trị viên của bạn để biết thêm thông tin, bao gồm các chính sách bảo mật của tổ chức bạn."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Tìm hiểu thêm"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Hủy"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"OK"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Hồ sơ công việc"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Bạn đã có hồ sơ công việc trên thiết bị của mình. Bạn có muốn xóa hồ sơ đó không?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Bạn có chắc chắn muốn xóa hồ sơ công việc này không? Tất cả dữ liệu trong hồ sơ sẽ bị xóa."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Xóa"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Hủy"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Để tiếp tục thiết lập hồ sơ công việc, bạn cần mã hóa thiết bị của mình. Quá trình này có thể mất vài phút."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Hủy"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Mã hóa"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Hoàn tất mã hóa"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Chạm để tiếp tục thiết lập hồ sơ công việc của bạn"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Không thiết lập được hồ sơ công việc của bạn. Hãy liên hệ với bộ phận CNTT hoặc thử lại sau."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Thiết bị của bạn không hỗ trợ hồ sơ công việc"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Hồ sơ công việc phải do chủ sở hữu thiết bị thiết lập"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Hồ sơ công việc của bạn không được ứng dụng trình chạy này hỗ trợ. Bạn cần chuyển sang trình chạy tương thích."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Hủy"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Ok"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Người dùng thiết bị cơ quan"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Thiết lập thiết bị của bạn"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Đang xử lý dữ liệu thiết lập..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Đang kết nối Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Đang tải xuống ứng dụng quản trị..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Đang cài đặt ứng dụng quản trị..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Đang đặt chủ sở hữu thiết bị..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Dừng thiết lập?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Bạn có chắc chắn muốn dừng thiết lập và xóa dữ liệu trên thiết bị của mình không?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Hủy"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"OK"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Đặt lại"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Không thiết lập được thiết bị của bạn. Hãy liên hệ với bộ phận CNTT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Thiết bị này đã được thiết lập"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Không thể kết nối với Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Không sử dụng được ứng dụng quản trị do có lỗi kiểm tra tổng. Hãy liên hệ với bộ phận CNTT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Không thể tải xuống ứng dụng quản trị"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Không thể sử dụng ứng dụng quản trị. Ứng dụng thiếu thành phần hoặc bị lỗi. Hãy liên hệ với bộ phận CNTT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Không thể cài đặt ứng dụng quản trị"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Ứng dụng quản trị chưa được cài đặt trên thiết bị của bạn"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Dừng thiết lập?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Bạn có chắc chắn muốn dừng thiết lập không?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Không"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Có"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Đang hủy..."</string>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..4446e92
--- /dev/null
+++ b/res/values-zh-rCN/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"设备配置器"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"糟糕，出错了！"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"设置您的资料"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"您的单位可控制此资料，并确保其安全性。您可以控制设备上的所有其他内容。"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"以下应用需要此资料的访问权限："</string>
+    <string name="set_up" msgid="7012862095553564169">"设置"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"正在设置您的工作资料…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"您单位的管理员能够监控和管理与此资料相关的设置、企业权限、应用以及数据（其中包括网络活动和您设备的位置信息）。"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"您单位的管理员能够监控和管理与此设备相关的设置、企业权限、应用以及数据（其中包括网络活动和您设备的位置信息）。"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"请与您单位的管理员联系以了解详情，包括单位的隐私权政策。"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"了解详情"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"取消"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"确定"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"工作资料"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"您的设备上已设置了一个工作资料。要移除该资料吗？"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"移除此工作资料将会删除此资料中的所有数据。确定要移除吗？"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"移除"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"取消"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"要继续设置工作资料，您需要对设备进行加密。此过程可能需要一段时间。"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"取消"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"加密"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"加密已完成"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"触摸即可继续设置您的工作资料"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"无法设置您的工作资料，请与您公司的IT部门联系或稍后重试。"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"您的设备不支持工作资料"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"工作资料需由相应设备的所有者设置"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"此启动器应用不支持工作资料。您需要改用兼容的启动器。"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"取消"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"确定"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"工作设备的用户"</string>
+    <string name="setup_device" msgid="6725265673245816366">"设置您的设备"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"正在处理设置数据…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"正在连接到WLAN网络…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"正在下载管理应用…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"正在安装管理应用…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"正在设置设备所有者…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"要停止设置吗？"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"确定要停止设置并清除您设备的数据吗？"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"取消"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"确定"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"重置"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"无法设置您的设备，请与您公司的IT部门联系。"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"之前已对此设备进行了设置"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"无法连接到WLAN"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"由于校验和错误，无法使用此管理应用。请与您公司的IT部门联系。"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"无法下载管理应用"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"由于缺少组件或软件包已损坏，无法使用此管理应用。请与您公司的IT部门联系。"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"无法安装管理应用"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"在您的设备上安装管理应用失败"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"要停止设置吗？"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"确定要停止设置吗？"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"否"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"是"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"正在取消…"</string>
+</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..55d64f4
--- /dev/null
+++ b/res/values-zh-rHK/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"裝置佈建程式"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"糟糕！"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"設定您的設定檔"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"貴機構可控制這個設定檔並確保其安全；裝置上的其他所有內容則由您自行管理。"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"下列應用程式需要存取這個設定檔："</string>
+    <string name="set_up" msgid="7012862095553564169">"設定"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"正在設定您的公司檔案…"</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"貴機構管理員可以監控及管理與這個設定檔相關聯的設定、公司系統權限、應用程式和資料，包括網絡活動和您的裝置位置資料。"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"貴機構管理員可以監控及管理與這部裝置相關聯的設定、公司系統存取權、應用程式和資料，包括網絡活動和您的裝置位置資料。"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"如需詳細資訊，包括貴機構的私隱權政策，請與您的管理員聯絡。"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"瞭解詳情"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"取消"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"確定"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"公司檔案"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"您的裝置已經設有一個公司檔案，您要移除嗎？"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"您確定要移除這個公司檔案嗎？其中的所有資料都會因此被刪除。"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"移除"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"取消"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"要繼續設定公司檔案，您必須為裝置加密。這項操作可能需要一段時間才能完成。"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"取消"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"加密"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"加密完成"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"輕觸即可繼續設定您的公司檔案"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"無法設定您的公司檔案，請與您的 IT 部門聯絡或稍後再試。"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"您的裝置不支援公司檔案"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"公司檔案必須由裝置擁有者設定"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"這個應用程式啟動器不支援您的公司檔案，請切換至相容的應用程式啟動器。"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"取消"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"確定"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"工作裝置的使用者"</string>
+    <string name="setup_device" msgid="6725265673245816366">"設定您的裝置"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"正在處理設定資料…"</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"正在連線至 Wi-Fi…"</string>
+    <string name="progress_download" msgid="4995057798189799156">"正在下載管理員應用程式…"</string>
+    <string name="progress_install" msgid="9169411715762296097">"正在安裝管理員應用程式…"</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"正在設定裝置擁有者…"</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"要停止設定嗎？"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"您確定要停止設定並清除裝置的資料嗎？"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"取消"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"確定"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"重設"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"無法設定您的裝置，請與您的 IT 部門聯絡。"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"裝置已完成設定"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"無法連線至 Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"管理員應用程式因校驗和錯誤而無法使用，請與您的 IT 部門聯絡。"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"無法下載管理員應用程式"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"管理員應用程式因缺少部分元件或已損毀而無法使用，請與您的 IT 部門聯絡。"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"無法安裝管理員應用程式"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"您的裝置尚未安裝管理員應用程式"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"要停止設定嗎？"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"您確定要停止設定嗎？"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"否"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"是"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"正在取消…"</string>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..53b58c3
--- /dev/null
+++ b/res/values-zh-rTW/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"裝置佈建者"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"糟糕！"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"設定您的設定檔"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"貴機構可控制這個設定檔並確保其安全性，裝置上的其他所有內容則由您自行管理。"</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"下列應用程式需要存取這個設定檔："</string>
+    <string name="set_up" msgid="7012862095553564169">"設定"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"正在設定您的工作設定檔..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"您的管理員可以監控及管理與這個設定檔相關聯的設定、公司系統權限、應用程式和資料，包括網路活動和裝置的位置資訊。"</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"您的管理員可以監控及管理與這個裝置相關聯的設定、公司系統權限、應用程式和資料，包括網路活動和裝置的位置資訊。"</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"如需詳細資訊 (包括貴機構的隱私權政策)，請洽您的管理員。"</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"暸解詳情"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"取消"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"確定"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"工作設定檔"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"您的裝置已經設有一個工作設定檔，您要移除嗎？"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"您確定要移除這個工作設定檔嗎？其中的所有資料都會因此遭到刪除。"</string>
+    <string name="delete_profile" msgid="7107020982626129151">"移除"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"取消"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"您必須為裝置加密才能繼續設定工作設定檔，這項程序需要一段時間。"</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"取消"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"加密"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"加密完成"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"輕觸即可繼續設定您的工作設定檔"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"無法設定您的工作設定檔，請與您的 IT 部門聯絡或稍後再試。"</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"您的裝置不支援工作設定檔"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"工作設定檔必須由裝置擁有者設定"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"這個啟動器應用程式不支援您的工作設定檔，請切換至相容的啟動器。"</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"取消"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"確定"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"工作裝置使用者"</string>
+    <string name="setup_device" msgid="6725265673245816366">"設定您的裝置"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"正在處理設定資料..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"正在連線至 Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"正在下載管理應用程式..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"正在安裝管理應用程式..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"正在設定裝置擁有者..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"停止設定？"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"您確定要停止設定並清除裝置的資料嗎？"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"取消"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"確定"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"重設"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"無法設定您的裝置，請與您的 IT 部門聯絡。"</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"這個裝置已完成設定"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"無法連線至 Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"因發生總和檢查碼錯誤而無法使用管理應用程式，請與您的 IT 部門聯絡。"</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"無法下載管理應用程式"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"管理應用程式因缺少部分元件或已毀損而無法使用，請與您的 IT 部門聯絡。"</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"無法安裝管理應用程式"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"您的裝置尚未安裝管理應用程式"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"停止設定？"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"您確定要停止設定嗎？"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"否"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"是"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"取消中..."</string>
+</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
new file mode 100644
index 0000000..f21fc74
--- /dev/null
+++ b/res/values-zu/strings.xml
@@ -0,0 +1,76 @@
+<?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_name" msgid="4699090302771328296">"Isinikezeli sedivayisi"</string>
+    <string name="provisioning_error_title" msgid="6320515739861578118">"Hawu!"</string>
+    <string name="setup_work_space" msgid="6539913744903244870">"Setha iphrofayela yakho"</string>
+    <string name="company_controls_workspace" msgid="2808025277267917221">"Inhlangano yakho ilawula le phrofayela iphinde iyigcine ivikelekile. Ulawule konke okunye kudivayisi yakho."</string>
+    <string name="the_following_is_your_mdm" msgid="6613658218262376404">"Uhlelo lokusebenza olulandelayo kuzomele lufinyelele kule phrofayela:"</string>
+    <string name="set_up" msgid="7012862095553564169">"Lungisa"</string>
+    <string name="setting_up_workspace" msgid="6116976629983614927">"Isetha iphrofayela yakho yomsebenzi..."</string>
+    <string name="admin_has_ability_to_monitor_profile" msgid="8782160676037188061">"Umlawuli wakho unekhono lokuqapha aphinde aphathe lezi zilungiselelo, ukufinyelela kwezinkampani, izinhlelo zokusebenza nedatha ehlotshaniswa nephrofayela, efaka umsebenzi wenethiwekhi kanye nolwazi lwendawo yedivayisi yakho."</string>
+    <string name="admin_has_ability_to_monitor_device" msgid="4534011355086694158">"Umqondisi wakho unamandla wokwengamela nokuphatha izilungiselelo, ukufinyelela kwenkampani, izinhlelo zokusebenza, nedatha ephathelene nale divayisi, kufaka phakathi umsebenzi wenethiwekhi nolwazi lwendawo ledivayisi yakho."</string>
+    <string name="contact_your_admin_for_more_info" msgid="6870084889394621288">"Xhumana nomqondisi wakho ngolwazi olubanzi, kufaka phakathi izinqubomgomo zokwemfihlo zenhlangano yakho."</string>
+    <string name="learn_more_link" msgid="3012495805919550043">"Funda kabanzi"</string>
+    <string name="cancel_setup" msgid="2949928239276274745">"Khansela"</string>
+    <string name="ok_setup" msgid="5148111905838329307">"KULUNGILE"</string>
+    <string name="default_managed_profile_name" msgid="5370257687074907055">"Iphrofayela yomsebenzi"</string>
+    <string name="managed_profile_already_present" msgid="888277922880582498">"Usuvele unayo iphrofayela yomsebenzi kudivayisi yakho. Ingabe ufuna ukuyisusa?"</string>
+    <string name="sure_you_want_to_delete_profile" msgid="3612824117836349973">"Ingabe uqinisekile ukuthi ufuna ukususa le phrofayela yomsebenzi? Yonke idatha yakhona uzosuswa."</string>
+    <string name="delete_profile" msgid="7107020982626129151">"Susa"</string>
+    <string name="cancel_delete_profile" msgid="5155447537894046036">"Khansela"</string>
+    <string name="encrypt_device_text" msgid="6762208577171389053">"Ukuze uqhubeke ngokusetha iphrofayela yakho yomsebenzi, uzodinga ukubethela idivayisi yakho. Lokhu kungatha isikhashana."</string>
+    <string name="encrypt_device_cancel" msgid="5644516574936584926">"Khansela"</string>
+    <string name="encrypt_device_launch_settings" msgid="826115154646195837">"Bethela"</string>
+    <string name="continue_provisioning_notify_title" msgid="5191449100153186648">"Ukubethela kuqedile"</string>
+    <string name="continue_provisioning_notify_text" msgid="3027317630111909095">"Thinta ukuze uqhubeke ngokusetha iphrofayela yakho yomsebenzi"</string>
+    <string name="managed_provisioning_error_text" msgid="7063621174570680890">"Ayikwazanga ukusehta iphrofayela yakho yomsebenzi. Xhumana nomnyango wakho we-IT noma zama futhi emuva kwesikhathi."</string>
+    <string name="managed_provisioning_not_supported" msgid="6582227325719911795">"Idivayisi yakho ayisekeli amaphrofayela womsebenzi"</string>
+    <string name="user_is_not_owner" msgid="4358772243716976929">"Amaphrofayela womsebenzi adinga ukusethwa umnikazi wedivayisi"</string>
+    <string name="managed_provisioning_not_supported_by_launcher" msgid="8710138269807942163">"Iphrofayela yakho yomsebenzi ayisekelwe yilesi siqalisi sohlelo lokusebenza. Kuzomele uguqulele kusiqalisi esihambisanayo."</string>
+    <string name="cancel_provisioning" msgid="3408069559452653724">"Khansela"</string>
+    <string name="pick_launcher" msgid="4257084827403983845">"Kulungile"</string>
+    <string name="default_owned_device_username" msgid="3915120202811807955">"Umsebenzisi wedivayisi yomsebenzi"</string>
+    <string name="setup_device" msgid="6725265673245816366">"Setha idivayisi yakho"</string>
+    <string name="progress_data_process" msgid="7099462614425874283">"Icubungula idatha yokusetha..."</string>
+    <string name="progress_connect_to_wifi" msgid="9214694010080838763">"Ixhuma ku-Wi-Fi..."</string>
+    <string name="progress_download" msgid="4995057798189799156">"Ilanda uhlelo lokusebenza lomqondisi..."</string>
+    <string name="progress_install" msgid="9169411715762296097">"Ifaka uhlelo lokusebenza lomqondisi..."</string>
+    <string name="progress_set_owner" msgid="1292946927202510987">"Isetha umnikazi wedivayisi..."</string>
+    <string name="device_owner_cancel_title" msgid="7909285135975063120">"Misa ukusetha?"</string>
+    <string name="device_owner_cancel_message" msgid="7928007377743469904">"Ingabe uqinisekile ukuthi ufuna ukuyeka ukusetha bese usule idatha yedivayisi yakho?"</string>
+    <string name="device_owner_cancel_cancel" msgid="1052951540909389275">"Khansela"</string>
+    <string name="device_owner_error_ok" msgid="2556654993515978854">"KULUNGILE"</string>
+    <string name="device_owner_error_reset" msgid="1609782972753569267">"Setha kabusha"</string>
+    <string name="device_owner_error_general" msgid="5962462955470123776">"Ayikwazanga ukusetha idivayisi yakho. Xhumana nomnyango wakho we-IT."</string>
+    <string name="device_owner_error_already_provisioned" msgid="1902305486832057049">"Le divayisi isivele isethiwe"</string>
+    <string name="device_owner_error_wifi" msgid="4256310285761332378">"Ayikwazanga ukuxhuma kwi-Wi-Fi"</string>
+    <string name="device_owner_error_hash_mismatch" msgid="184518450016295596">"Ayikwazanga ukusebenzisa uhlelo lokusebenza lomqondisi ngenxa yephutha lokuhlola. Xhumana ngomnyango wakho we-IT."</string>
+    <string name="device_owner_error_download_failed" msgid="4520111971592657116">"Ayikwazanga ukulanda uhlelo lokusebenza lomqondisi"</string>
+    <string name="device_owner_error_package_invalid" msgid="3816725179069202140">"Ayikwazi ukusebenzisa uhlelo lokusebenza lomqondisi. Xhumana nomnyango wakho we-IT."</string>
+    <string name="device_owner_error_installation_failed" msgid="684566845601079360">"Ayikwazanga ukufaka uhlelo lokusebenza lomqondisi"</string>
+    <string name="device_owner_error_package_not_installed" msgid="6095079346537408556">"Uhlelo lokusebenza alufakiwe kudivayisi yakho"</string>
+    <string name="profile_owner_cancel_title" msgid="1087667875324931402">"Misa ukusetha?"</string>
+    <string name="profile_owner_cancel_message" msgid="3397782777804924267">"Ingabe uqinisekile ukuthi ufuna ukumisa ukusetha?"</string>
+    <string name="profile_owner_cancel_cancel" msgid="4408725524311574891">"Cha"</string>
+    <string name="profile_owner_cancel_ok" msgid="5951679183850766029">"Yebo"</string>
+    <string name="profile_owner_cancelling" msgid="2007485854183176973">"Kuyakhanselwa..."</string>
+</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 9ddf8f2..1fc1515 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -17,9 +17,14 @@
  */
 -->
 <resources>
-    <color name="black">#000000</color>
+    <color name="text_black">#df000000</color>
+    <color name="light_gray">#ebebeb</color>
     <color name="white">#ffffff</color>
-    <color name="light_turquoise">#b2dfdb</color>
+    <color name="teal">#4cb5ab</color>
+    <color name="light_teal">#a2dedb</color>
     <color name="dark_turquoise">#4db6ac</color>
-    <color name="blue">#4285f4</color>
+    <color name="transparent_dark_turquoise">#204db6ac</color>
+    <color name="accent">@color/dark_turquoise</color>
+    <color name="accent_transparent">@color/transparent_dark_turquoise</color>
+    <color name="transparent">#00000000</color>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 11fb894..6764c41 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -17,8 +17,33 @@
  */
 -->
 <resources>
-    <dimen name="title_height">104dip</dimen>
-    <dimen name="title_size">25sp</dimen>
-    <dimen name="title_margin_sides">0dp</dimen>
 
+    <!-- Main text -->
+    <dimen name="main_text_padding_left_right">16dp</dimen>
+    <dimen name="main_text_padding_bottom">24dp</dimen>
+    <dimen name="main_text_padding_top">0dp</dimen>
+    <dimen name="main_text_padding_between_text">8dp</dimen>
+    <dimen name="main_text_margins_left_right">0dp</dimen>
+    <dimen name="main_text_size">16sp</dimen>
+
+    <!-- Dialog Fragment text -->
+    <dimen name="dialog_text_padding_left_right">16dp</dimen>
+    <dimen name="dialog_text_padding_bottom">24dp</dimen>
+    <dimen name="dialog_text_padding_top">24dp</dimen>
+
+    <!-- Buttons -->
+    <dimen name="button_width">100dp</dimen>
+
+    <!-- Edit Texts -->
+    <dimen name="edit_text_height">48dp</dimen>
+    <dimen name="edit_text_margin_top">8dp</dimen>
+
+    <!-- Title -->
+    <dimen name="title_height">72dp</dimen>
+    <dimen name="title_text_size">24sp</dimen>
+    <dimen name="title_padding">@dimen/main_text_padding_left_right</dimen>
+
+    <dimen name="row_height">72dp</dimen>
+    <dimen name="row_padding_top">8dp</dimen>
+    <dimen name="icon_width_height">56dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a5aab2e..3133ef1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -19,62 +19,82 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <!-- TODO: Review all strings before launch -->
 
-  <!-- General provisioning strings used for both device owner and managed profile provisioning -->
+  <!-- General provisioning strings used for both device owner and work profile provisioning -->
 
   <!-- Name of the application [CHAR LIMIT=NONE] -->
   <string name="app_name">Device Provisioner</string>
   <!-- Title of the provisioning error dialog. [CHAR LIMIT=45] -->
   <string name="provisioning_error_title">Oops!</string>
 
-  <!-- Managed profile provisioning flow UI. -->
+  <!-- Work profile provisioning flow UI. -->
 
   <!-- User consent -->
-  <!-- Title of all managed profile setup screens. [CHAR LIMIT=NONE] -->
-  <string name="setup_work_space">Set up your work profile</string>
-  <!-- Part 1 of the text that asks for user consent to create a corporate profile [CHAR LIMIT=NONE] -->
-  <string name="separate_work_spaces">Set up a work profile for your corporate email and other apps.</string>
-  <!-- Part 2 of the text that asks for user consent to create a corporate profile [CHAR LIMIT=NONE] -->
-  <string name="company_controls_workspace">Your company controls your work profile on this device and keeps
-      it secure. You control your personal profile. Your company can\'t access it.</string>
+  <!-- Title of all work profile setup screens. [CHAR LIMIT=NONE] -->
+  <string name="setup_work_space">Set up your profile</string>
+  <!-- The text that asks for user consent to create a work profile [CHAR LIMIT=NONE] -->
+  <string name="company_controls_workspace">Your organization controls this profile and keeps it secure. You control everything else on your device.</string>
+  <!-- String shown above the icon of the app that will control the work profile after it is set up. [CHAR LIMIT=NONE]-->
+  <string name="the_following_is_your_mdm">The following app will need to access this profile:</string>
   <!-- String for positive button on user consent dialog for creating a profile [CHAR LIMIT=NONE] -->
   <string name="set_up">Set up</string>
-  <!-- Progress text shown when setting up work space [CHAR LIMIT=NONE] -->
+  <!-- Progress text shown when setting up work profile [CHAR LIMIT=NONE] -->
   <string name="setting_up_workspace">Setting up your work profile...</string>
+  <!-- Text in a pop-up that asks the user to confirm that they allow the mobile device management app to take control of the profile they are creating. [CHAR LIMIT=NONE]-->
+  <string name="admin_has_ability_to_monitor_profile">Your administrator has the ability to monitor and manage settings, corporate access, apps and data associated with the profile, including network activity and your device\'s location information.</string>
+  <!-- Text in a pop-up that asks the user to confirm that they allow the mobile device management app to take control of the device. [CHAR LIMIT=NONE]-->
+  <string name="admin_has_ability_to_monitor_device">Your administrator has the ability to monitor and manage settings, corporate access, apps, and data associated with this device, including network activity and your device\'s location information.</string>
+  <!-- String telling the user how to get more information about their work profile-->
+  <string name="contact_your_admin_for_more_info">Contact your administrator for more information, including your organization\'s privacy policies.</string>
+  <!-- Text on the link that will forward the user to a website with more information about work profiles [CHAR LIMIT=30]-->
+  <string name="learn_more_link">Learn more </string>
+  <!-- Text on negative button in a popup shown to the user to confirm that they want to start setting up a work profile [CHAR LIMIT=15]-->
+  <string name="cancel_setup">Cancel</string>
+  <!-- Text on positive button in a popup shown to the user to confirm that they want to start setting up a work profile [CHAR LIMIT=15]-->
+  <string name="ok_setup">OK</string>
 
-  <!-- Default profile name used for the creation of managed profiles. [CHAR LIMIT=NONE] -->
+  <!-- Default profile name used for the creation of work profiles. [CHAR LIMIT=NONE] -->
   <string name="default_managed_profile_name">Work profile</string>
 
-  <!-- String shown when there is already a managed profile for this user. CHAR LIMIT=NONE] -->
-  <string name="managed_profile_already_present"> You can only have one work space on your device. It appears that you already have one. Would you like to remove it to proceed?</string>
-  <!-- String on the dialog that prompts the user to confirm that they really want to delete their existing managed profile-->
-  <string name="sure_you_want_to_delete_profile"> Are you sure you want to delete your existing work space? This will delete all data associated with it.</string>
-  <!-- String on the button that triggers the deletion of a managed profile.-->
-  <string name="delete_profile">Delete</string>
-  <!-- String on the button that cancels out of the deletion of a managed profile.-->
+  <!-- String shown when there is already a work profile for this user. CHAR LIMIT=NONE] -->
+  <string name="managed_profile_already_present">You already have a work profile on your device. Do you want to remove it?</string>
+  <!-- String on the dialog that prompts the user to confirm that they really want to delete their existing work profile-->
+  <string name="sure_you_want_to_delete_profile">Are you sure you want to remove this work profile? All of its data will be deleted.</string>
+  <!-- String on the button that triggers the deletion of a work profile.-->
+  <string name="delete_profile">Remove</string>
+  <!-- String on the button that cancels out of the deletion of a work profile.-->
   <string name="cancel_delete_profile">Cancel</string>
 
   <!-- String shown on prompt for user to encrypt and reboot the device [CHAR LIMIT=NONE]-->
-  <string name="encrypt_device_text">To continue setting up, you\'ll need to encrypt your device. This may take some time.</string>
+  <string name="encrypt_device_text">To continue setting up your work profile, you\'ll need to encrypt your device. This may take some time.</string>
   <!-- String shown on button for user to cancel setup when asked to encrypt device. [CHAR LIMIT=20]-->
   <string name="encrypt_device_cancel">Cancel</string>
   <!-- String shown on button for user to continue to settings to encrypt the device. [CHAR LIMIT=20]-->
-  <string name="encrypt_device_launch_settings">Encrypt device</string>
+  <string name="encrypt_device_launch_settings">Encrypt</string>
 
-  <!-- Reminder notification to resume provisioning after device has been encrypted -->
-  <string name="continue_provisioning_notify_title">Managed provisioning</string>
-  <string name="continue_provisioning_notify_text">Continue with managed provisioning</string>
+  <!-- Title for reminder notification to resume provisioning after encryption [CHAR LIMIT=30] -->
+  <string name="continue_provisioning_notify_title">Encryption complete</string>
+  <!-- Body for reminder notification to resume provisioning after encryption [CHAR LIMIT=NONE] -->
+  <string name="continue_provisioning_notify_text">Touch to continue setting up your work profile</string>
 
   <!-- Explains the failure and what to do to next. [CHAR LIMIT=NONE] -->
   <string name="managed_provisioning_error_text">Couldn\'t set up your work profile. Contact your IT department or try again later.</string>
-  <!-- Error string displayed if this device doesn't support managed profiles. -->
-  <string name="managed_provisioning_not_supported">Your device doesn\'t support work profiles.</string>
+  <!-- Error string displayed if this device doesn't support work profiles. -->
+  <string name="managed_provisioning_not_supported">Your device doesn\'t support work profiles</string>
+  <!-- Error string displayed if the user that initiated the provisioning is not the user owner. -->
+  <string name="user_is_not_owner">Work profiles need to be set up by the device owner</string>
+  <!-- Error string displayed if the selected launcher doesn't support work profiles. -->
+  <string name="managed_provisioning_not_supported_by_launcher">Your work profile isn\'t supported by this launcher app. You\'ll need to switch to a launcher that\'s compatible.</string>
+  <!-- Button text for the button that cancels provisioning  -->
+  <string name="cancel_provisioning">Cancel</string>
+  <!-- Button text for the button that opens the launcher picker  -->
+  <string name="pick_launcher">Ok</string>
 
   <!-- Device owner provisioning flow UI. -->
 
   <!-- Default username for the user of the owned device. [CHAR LIMIT=45] -->
-  <string name="default_owned_device_username">User of managed device</string>
+  <string name="default_owned_device_username">User of work device</string>
 
-  <!-- Title of the managed device setup screen. [CHAR LIMIT=NONE] -->
+  <!-- Title of the work device setup screen. [CHAR LIMIT=NONE] -->
   <string name="setup_device">Set up your device</string>
   <!-- Progress text indicating that the setup data is processed. [CHAR LIMIT=45] -->
   <string name="progress_data_process">Processing setup data...</string>
@@ -88,31 +108,39 @@
   <string name="progress_set_owner">Setting the device owner...</string>
 
   <!-- Title of the cancel provisioning dialog. [CHAR LIMIT=45] -->
-  <string name="device_owner_cancel_title">Stop provisioning?</string>
+  <string name="device_owner_cancel_title">Stop setting up?</string>
   <!-- Message of the cancel dialog. [CHAR LIMIT=NONE] -->
   <string name="device_owner_cancel_message">Are you sure you want to stop setting up and erase your device\'s data?</string>
   <!-- Cancel button text of the cancel dialog. [CHAR LIMIT=45] -->
   <string name="device_owner_cancel_cancel">Cancel</string>
   <!-- OK button text of the error dialog. [CHAR LIMIT=45] -->
-  <string name="device_owner_error_ok">Ok</string>
+  <string name="device_owner_error_ok">OK</string>
   <!-- Reset button text of the error dialog. [CHAR LIMIT=45] -->
   <string name="device_owner_error_reset">Reset</string>
   <!-- Message of the error dialog in case of an unspecified error. [CHAR LIMIT=NONE] -->
   <string name="device_owner_error_general">Couldn\'t set up your device. Contact your IT department. </string>
   <!-- Message of the error dialog when already provisioned. [CHAR LIMIT=NONE] -->
-  <string name="device_owner_error_already_provisioned">The device is already set up.</string>
-  <!-- Message of the error dialog when already owned. [CHAR LIMIT=NONE] -->
-  <string name="device_owner_error_already_owned">This device already has an owner.</string>
+  <string name="device_owner_error_already_provisioned">This device is already set up</string>
   <!-- Message of the error dialog when setting up wifi failed. [CHAR LIMIT=NONE] -->
-  <string name="device_owner_error_wifi">Couldn\'t connect to wifi.</string>
+  <string name="device_owner_error_wifi">Couldn\'t connect to Wi-Fi</string>
   <!-- Message of the error dialog when data integrity check fails. [CHAR LIMIT=NONE] -->
   <string name="device_owner_error_hash_mismatch">Couldn\'t use the admin app due to a checksum error. Contact your IT department.</string>
   <!-- Message of the error dialog when device owner apk could not be downloaded. [CHAR LIMIT=NONE] -->
-  <string name="device_owner_error_download_failed">Couldn\'t download the admin app.</string>
+  <string name="device_owner_error_download_failed">Couldn\'t download the admin app</string>
   <!-- Message of the error dialog when package to install is invalid. [CHAR LIMIT=NONE] -->
   <string name="device_owner_error_package_invalid">Can\'t use the admin app. It\'s missing components or corrupted. Contact your IT department.</string>
   <!-- Message of the error dialog when package could not be installed. [CHAR LIMIT=NONE] -->
-  <string name="device_owner_error_installation_failed">Couldn\'t install the admin app.</string>
+  <string name="device_owner_error_installation_failed">Couldn\'t install the admin app</string>
   <!-- Message of the error dialog when device admin package is not installed. [CHAR LIMIT=NONE] -->
-  <string name="device_owner_error_package_not_installed">The admin app isn\'t installed on your device.</string>
+  <string name="device_owner_error_package_not_installed">The admin app isn\'t installed on your device</string>
+  <!-- Title of the cancel profile owner provisioning dialog. [CHAR LIMIT=45] -->
+  <string name="profile_owner_cancel_title">Stop setting up?</string>
+  <!-- Message of the cancel dialog. [CHAR LIMIT=NONE] -->
+  <string name="profile_owner_cancel_message">Are you sure you want to stop setting up?</string>
+  <!-- Cancel button text of the cancel dialog. [CHAR LIMIT=45] -->
+  <string name="profile_owner_cancel_cancel">No</string>
+  <!-- OK button text of the error dialog. [CHAR LIMIT=45] -->
+  <string name="profile_owner_cancel_ok">Yes</string>
+  <!-- Message of the cancel progress dialog. [CHAR LIMIT=45] -->
+  <string name="profile_owner_cancelling">Cancelling...</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index dc7fe9a..fb8a8a8 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -17,55 +17,142 @@
  */
 -->
 <resources>
-    <style name="SetupWorkSpaceTheme" parent="@android:Theme.Material.Light">
+
+    <style name="SetupWorkSpaceTheme" parent="@android:style/Theme.Material.Light" >
       <item name="android:windowActionBar">false</item>
       <item name="android:windowNoTitle">true</item>
+      <item name="android:colorPrimary">@color/teal</item>
+      <item name="android:colorAccent">@color/dark_turquoise</item>
+      <item name="android:colorPrimaryDark">@color/light_teal</item>
     </style>
 
-    <style name="SetupWorkSpaceHeader">
+    <style name="LightButtonOverlayTheme">
+        <item name="android:colorButtonNormal">@color/white</item>
+        <item name="android:textColorPrimary">@color/accent</item>
+        <item name="android:colorControlHighlight">@color/accent_transparent</item>
+    </style>
+
+    <style name="ColoredButtonOverlayTheme">
+        <item name="android:colorButtonNormal">@color/colored_button</item>
+        <item name="android:textColorPrimary">@color/white</item>
+    </style>
+
+    <style name="ControlOverlayTheme">
+      <item name="android:colorControlNormal">@color/accent_transparent</item>
+    </style>
+
+    <style name="Container">
+      <item name="android:layout_width">fill_parent</item>
+      <item name="android:layout_height">fill_parent</item>
+      <item name="android:orientation">vertical</item>
+      <item name="android:background">@color/teal</item>
+    </style>
+
+    <style name="HeaderAndTitleContainer">
         <item name="android:layout_width">fill_parent</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:background">@color/light_turquoise</item>
+        <item name="android:orientation">vertical</item>
+        <item name="android:background">@color/teal</item>
+    </style>
+
+    <style name="HeaderImage">
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:adjustViewBounds">true</item>
+        <item name="android:scaleType">centerCrop</item>
         <item name="android:src">@drawable/setup_illustration</item>
     </style>
 
-    <style name="SetupWorkSpaceTitle" parent ="@style/SetupWorkSpaceLeftRightPadding">
-        <item name="android:text">@string/setup_work_space</item>
+    <style name="Title">
         <item name="android:layout_width">fill_parent</item>
-        <item name="android:layout_height">72dp</item>
-        <item name="android:textSize">24sp</item>
-        <item name="android:background">@color/dark_turquoise</item>
+        <item name="android:layout_height">@dimen/title_height</item>
+        <item name="android:textSize">@dimen/title_text_size</item>
+        <item name="android:background">@color/teal</item>
         <item name="android:textColor">@color/white</item>
         <item name="android:gravity">center_vertical</item>
+        <item name="android:paddingLeft">@dimen/title_padding</item>
     </style>
 
-    <style name="SetupWorkSpaceMainText">
+    <style name="MainText">
         <item name="android:layout_width">fill_parent</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:textSize">14sp</item>
-        <item name="android:textColor">@color/black</item>
-        <item name="android:paddingTop">16dp</item>
+        <item name="android:textColor">@color/text_black</item>
+        <item name="android:paddingTop">@dimen/main_text_padding_between_text</item>
+        <item name="android:textSize">@dimen/main_text_size</item>
     </style>
 
-    <style name="SetupButton">
-        <item name="android:layout_width">100dp</item>
-        <item name="android:layout_height">35dp</item>
-        <item name="android:textSize">14sp</item>
-        <item name="android:textColor">@color/white</item>
-        <item name="android:background">@color/blue</item>
+    <style name="ColoredButton" parent="@android:style/Widget.Material.Light.Button">
+        <item name="android:theme">@style/ColoredButtonOverlayTheme</item>
+        <item name="android:minWidth">@dimen/button_width</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textSize">@dimen/main_text_size</item>
     </style>
 
-    <style name="SetupWorkSpaceTextContainer" parent ="@style/SetupWorkSpaceLeftRightPadding">
+    <style name="LightButton" parent="@android:style/Widget.Material.Light.Button">
+        <item name="android:theme">@style/LightButtonOverlayTheme</item>
+        <item name="android:minWidth">@dimen/button_width</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textSize">@dimen/main_text_size</item>
+    </style>
+
+    <style name="TransparentButton" parent="@android:style/Widget.Material.Light.Button">
+        <item name="android:minWidth">@dimen/button_width</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textSize">@dimen/main_text_size</item>
+        <item name="android:background">@color/transparent</item>
+        <item name="android:textColorPrimary">@color/colored_button</item>
+    </style>
+
+    <style name="MainTextContainer">
         <item name="android:layout_width">fill_parent</item>
-        <item name="android:layout_height">0dp</item>
-        <item name="android:layout_weight">1</item>
+        <item name="android:layout_height">fill_parent</item>
         <item name="android:orientation">vertical</item>
-        <item name="android:paddingBottom">24dp</item>
         <item name="android:background">@color/white</item>
+        <item name="android:paddingBottom">@dimen/main_text_padding_bottom</item>
+        <item name="android:layout_marginLeft">@dimen/main_text_margins_left_right</item>
+        <item name="android:layout_marginRight">@dimen/main_text_margins_left_right</item>
+        <item name="android:paddingLeft">@dimen/main_text_padding_left_right</item>
+        <item name="android:paddingRight">@dimen/main_text_padding_left_right</item>
+        <item name="android:paddingTop">@dimen/main_text_padding_top</item>
+        <item name="android:textSize">@dimen/main_text_size</item>
     </style>
 
-    <style name="SetupWorkSpaceLeftRightPadding">
-        <item name="android:paddingLeft">16dp</item>
-        <item name="android:paddingRight">16dp</item>
+    <style name="DialogFragmentTextContainer">
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">fill_parent</item>
+        <item name="android:orientation">vertical</item>
+        <item name="android:background">@color/white</item>
+        <item name="android:paddingBottom">@dimen/dialog_text_padding_bottom</item>
+        <item name="android:paddingLeft">@dimen/dialog_text_padding_left_right</item>
+        <item name="android:paddingRight">@dimen/dialog_text_padding_left_right</item>
+        <item name="android:paddingTop">@dimen/dialog_text_padding_top</item>
+        <item name="android:textSize">@dimen/main_text_size</item>
     </style>
+
+
+    <style name="ScrollView" parent="@android:style/Widget.Material.Light.ScrollView">
+        <item name="android:theme">@style/ControlOverlayTheme</item>
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:fadeScrollbars">false</item>
+    </style>
+
+    <style name="ProgressBar" parent="@android:Widget.Material.ProgressBar">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">@dimen/main_text_padding_between_text</item>
+        <item name="android:indeterminate">true</item>
+    </style>
+
+    <style name="ManagedProvisioningDialogTheme" parent="@android:style/Theme.Dialog">
+      <item name="android:windowFullscreen">true</item>
+      <item name="android:windowNoTitle">true</item>
+      <item name="android:windowBackground">@android:color/transparent</item>
+    </style>
+
 </resources>
diff --git a/src/com/android/managedprovisioning/BootReminder.java b/src/com/android/managedprovisioning/BootReminder.java
index 7f923b7..85c6511 100644
--- a/src/com/android/managedprovisioning/BootReminder.java
+++ b/src/com/android/managedprovisioning/BootReminder.java
@@ -15,23 +15,22 @@
  */
 package com.android.managedprovisioning;
 
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
 
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
-
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-
 import android.os.Bundle;
 
 /**
  * Class that handles the resuming process that takes place after a reboot for encryption
- * during the provisioining process.
+ * during the provisioning process.
  */
 public class BootReminder extends BroadcastReceiver {
     private static final int NOTIFY_ID = 1;
@@ -43,15 +42,22 @@
             "profile-owner-provisioning-resume";
 
     private static final String[] PROFILE_OWNER_STRING_EXTRAS = {
-        // Key for the default name of the managed profile
-        EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME,
         // Key for the device admin package name
         EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME
     };
 
+    private static final String[] PROFILE_OWNER_PERSISTABLE_BUNDLE_EXTRAS = {
+        // Key for the admin extras bundle
+        EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
+    };
+
+    private static final String[] PROFILE_OWNER_ACCOUNT_EXTRAS = {
+        // Key for the account extras
+        EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
+    };
+
     private static final ComponentName PROFILE_OWNER_INTENT_TARGET =
-            new ComponentName("com.android.managedprovisioning",
-                    "com.android.managedprovisioning.ManagedProvisioningActivity");
+            ProfileOwnerPreProvisioningActivity.ALIAS_NO_CHECK_CALLER;
 
     /*
      * Device owner parameters that are stored in the IntentStore for resuming provisioning.
@@ -70,10 +76,12 @@
             // Resume profile owner provisioning if applicable.
             IntentStore profileOwnerIntentStore = getProfileOwnerIntentStore(context);
             final Intent resumeProfileOwnerPrvIntent = profileOwnerIntentStore.load();
-            if (resumeProfileOwnerPrvIntent != null ) {
-                // Show reminder notification and then forget about it for next boot
-                setNotification(context, resumeProfileOwnerPrvIntent);
-                profileOwnerIntentStore.clear();
+            if (resumeProfileOwnerPrvIntent != null) {
+                if (EncryptDeviceActivity.isDeviceEncrypted()) {
+                    // Show reminder notification and then forget about it for next boot
+                    profileOwnerIntentStore.clear();
+                    setNotification(context, resumeProfileOwnerPrvIntent);
+                }
             }
 
             // Resume device owner provisioning if applicable.
@@ -133,23 +141,19 @@
     }
 
     private static IntentStore getProfileOwnerIntentStore(Context context) {
-        return new IntentStore(context,
-                PROFILE_OWNER_STRING_EXTRAS,
-                new String[0],
-                new String[0],
-                new String[0],
-                PROFILE_OWNER_INTENT_TARGET,
-                PROFILE_OWNER_PREFERENCES_NAME);
+        return new IntentStore(context,PROFILE_OWNER_INTENT_TARGET, PROFILE_OWNER_PREFERENCES_NAME)
+                .setStringKeys(PROFILE_OWNER_STRING_EXTRAS)
+                .setPersistableBundleKeys(PROFILE_OWNER_PERSISTABLE_BUNDLE_EXTRAS)
+                .setAccountKeys(PROFILE_OWNER_ACCOUNT_EXTRAS);
     }
 
     private static IntentStore getDeviceOwnerIntentStore(Context context) {
-        return new IntentStore(context,
-                MessageParser.DEVICE_OWNER_STRING_EXTRAS,
-                MessageParser.DEVICE_OWNER_LONG_EXTRAS,
-                MessageParser.DEVICE_OWNER_INT_EXTRAS,
-                MessageParser.DEVICE_OWNER_BOOLEAN_EXTRAS,
-                DEVICE_OWNER_INTENT_TARGET,
-                DEVICE_OWNER_PREFERENCES_NAME);
+        return new IntentStore(context, DEVICE_OWNER_INTENT_TARGET, DEVICE_OWNER_PREFERENCES_NAME)
+                .setStringKeys(MessageParser.DEVICE_OWNER_STRING_EXTRAS)
+                .setLongKeys(MessageParser.DEVICE_OWNER_LONG_EXTRAS)
+                .setIntKeys(MessageParser.DEVICE_OWNER_INT_EXTRAS)
+                .setBooleanKeys(MessageParser.DEVICE_OWNER_BOOLEAN_EXTRAS)
+                .setPersistableBundleKeys(MessageParser.DEVICE_OWNER_PERSISTABLE_BUNDLE_EXTRAS);
     }
 
     /** Create and show the provisioning reminder notification. */
@@ -166,7 +170,10 @@
                 .setContentIntent(resumePendingIntent)
                 .setContentTitle(context.getString(R.string.continue_provisioning_notify_title))
                 .setContentText(context.getString(R.string.continue_provisioning_notify_text))
-                .setSmallIcon(android.R.drawable.ic_dialog_alert)
+                .setSmallIcon(com.android.internal.R.drawable.ic_corp_statusbar_icon)
+                .setVisibility(Notification.VISIBILITY_PUBLIC)
+                .setColor(context.getResources().getColor(
+                        com.android.internal.R.color.system_notification_accent_color))
                 .setAutoCancel(true);
         notificationManager.notify(NOTIFY_ID, notify.build());
     }
diff --git a/src/com/android/managedprovisioning/CrossProfileIntentFiltersHelper.java b/src/com/android/managedprovisioning/CrossProfileIntentFiltersHelper.java
index f7d9ec1..9912534 100644
--- a/src/com/android/managedprovisioning/CrossProfileIntentFiltersHelper.java
+++ b/src/com/android/managedprovisioning/CrossProfileIntentFiltersHelper.java
@@ -17,18 +17,11 @@
 
 import static android.speech.RecognizerIntent.ACTION_RECOGNIZE_SPEECH;
 
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.UserInfo;
-import android.content.SharedPreferences;
-import android.os.UserHandle;
-import android.os.UserManager;
 import android.provider.MediaStore;
-import android.util.Log;
 
 import com.android.managedprovisioning.ProvisionLogger;
 
@@ -39,49 +32,53 @@
  */
 public class CrossProfileIntentFiltersHelper {
 
-    public static class FiltersReseter extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if(Intent.ACTION_PRE_BOOT_COMPLETED.equals(intent.getAction())) {
-                int currentUserId = context.getUserId();
-                if (currentUserId == UserHandle.USER_OWNER) {
-                    // Reseting the cross-profile intent filters for the managed profiles who have
-                    // this user as their parent.
-                    UserManager um = (UserManager) context.getSystemService(
-                            Context.USER_SERVICE);
-                    List<UserInfo> profiles = um.getProfiles(currentUserId);
-                    if (profiles.size() > 1) {
-                        PackageManager pm = context.getPackageManager();
-                        pm.clearCrossProfileIntentFilters(currentUserId);
-                        for (UserInfo userInfo : profiles) {
-                            if (userInfo.isManagedProfile() && userInfo.id != currentUserId) {
-                                pm.clearCrossProfileIntentFilters(userInfo.id);
-                                setFilters(pm, currentUserId, userInfo.id);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
     public static void setFilters(PackageManager pm, int parentUserId, int managedProfileUserId) {
         ProvisionLogger.logd("Setting cross-profile intent filters");
 
+        // Voicemail scheme, phone/call related MIME types and emergency/priviledged calls are sent
+        // directly to the parent user.
         IntentFilter mimeTypeTelephony = new IntentFilter();
         mimeTypeTelephony.addAction(Intent.ACTION_DIAL);
+        mimeTypeTelephony.addAction(Intent.ACTION_VIEW);
+        mimeTypeTelephony.addAction(Intent.ACTION_CALL_EMERGENCY);
+        mimeTypeTelephony.addAction(Intent.ACTION_CALL_PRIVILEGED);
         mimeTypeTelephony.addCategory(Intent.CATEGORY_DEFAULT);
         mimeTypeTelephony.addCategory(Intent.CATEGORY_BROWSABLE);
         try {
             mimeTypeTelephony.addDataType("vnd.android.cursor.item/phone");
+            mimeTypeTelephony.addDataType("vnd.android.cursor.item/phone_v2");
             mimeTypeTelephony.addDataType("vnd.android.cursor.item/person");
             mimeTypeTelephony.addDataType("vnd.android.cursor.dir/calls");
+            mimeTypeTelephony.addDataType("vnd.android.cursor.item/calls");
         } catch (IntentFilter.MalformedMimeTypeException e) {
             //will not happen
         }
         pm.addCrossProfileIntentFilter(mimeTypeTelephony, managedProfileUserId, parentUserId,
                 PackageManager.SKIP_CURRENT_PROFILE);
 
+        IntentFilter callEmergency = new IntentFilter();
+        callEmergency.addAction(Intent.ACTION_CALL_EMERGENCY);
+        callEmergency.addAction(Intent.ACTION_CALL_PRIVILEGED);
+        callEmergency.addCategory(Intent.CATEGORY_DEFAULT);
+        callEmergency.addCategory(Intent.CATEGORY_BROWSABLE);
+        callEmergency.addDataScheme("tel");
+        callEmergency.addDataScheme("sip");
+        callEmergency.addDataScheme("voicemail");
+        pm.addCrossProfileIntentFilter(callEmergency, managedProfileUserId, parentUserId,
+                PackageManager.SKIP_CURRENT_PROFILE);
+
+        IntentFilter callVoicemail = new IntentFilter();
+        callVoicemail.addAction(Intent.ACTION_DIAL);
+        callVoicemail.addAction(Intent.ACTION_CALL);
+        callVoicemail.addAction(Intent.ACTION_VIEW);
+        callVoicemail.addCategory(Intent.CATEGORY_DEFAULT);
+        callVoicemail.addCategory(Intent.CATEGORY_BROWSABLE);
+        callVoicemail.addDataScheme("voicemail");
+        pm.addCrossProfileIntentFilter(callVoicemail, managedProfileUserId, parentUserId,
+                PackageManager.SKIP_CURRENT_PROFILE);
+
+        // Let VoIP apps from the managed profile handle tel: and sip: schemes (except emergency)
+        // and call button intents.
         IntentFilter callDial = new IntentFilter();
         callDial.addAction(Intent.ACTION_DIAL);
         callDial.addAction(Intent.ACTION_CALL);
@@ -89,16 +86,17 @@
         callDial.addCategory(Intent.CATEGORY_DEFAULT);
         callDial.addCategory(Intent.CATEGORY_BROWSABLE);
         callDial.addDataScheme("tel");
-        callDial.addDataScheme("voicemail");
         callDial.addDataScheme("sip");
-        callDial.addDataScheme("tel");
-        pm.addCrossProfileIntentFilter(callDial, managedProfileUserId, parentUserId,
-                PackageManager.SKIP_CURRENT_PROFILE);
+        pm.addCrossProfileIntentFilter(callDial, managedProfileUserId, parentUserId, 0);
+
+        IntentFilter callButton = new IntentFilter();
+        callButton.addAction(Intent.ACTION_CALL_BUTTON);
+        callButton.addCategory(Intent.CATEGORY_DEFAULT);
+        pm.addCrossProfileIntentFilter(callButton, managedProfileUserId, parentUserId, 0);
 
         IntentFilter callDialNoData = new IntentFilter();
         callDialNoData.addAction(Intent.ACTION_DIAL);
         callDialNoData.addAction(Intent.ACTION_CALL);
-        callDialNoData.addAction(Intent.ACTION_CALL_BUTTON);
         callDialNoData.addCategory(Intent.CATEGORY_DEFAULT);
         callDialNoData.addCategory(Intent.CATEGORY_BROWSABLE);
         pm.addCrossProfileIntentFilter(callDialNoData, managedProfileUserId, parentUserId,
@@ -116,6 +114,20 @@
         pm.addCrossProfileIntentFilter(smsMms, managedProfileUserId, parentUserId,
                 PackageManager.SKIP_CURRENT_PROFILE);
 
+        IntentFilter mobileNetworkSettings = new IntentFilter();
+        mobileNetworkSettings.addAction(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS);
+        mobileNetworkSettings.addAction(android.provider.Settings.ACTION_NETWORK_OPERATOR_SETTINGS);
+        mobileNetworkSettings.addCategory(Intent.CATEGORY_DEFAULT);
+        pm.addCrossProfileIntentFilter(mobileNetworkSettings, managedProfileUserId,
+                parentUserId, PackageManager.SKIP_CURRENT_PROFILE);
+
+        IntentFilter home = new IntentFilter();
+        home.addAction(Intent.ACTION_MAIN);
+        home.addCategory(Intent.CATEGORY_DEFAULT);
+        home.addCategory(Intent.CATEGORY_HOME);
+        pm.addCrossProfileIntentFilter(home, managedProfileUserId, parentUserId,
+                PackageManager.SKIP_CURRENT_PROFILE);
+
         IntentFilter send = new IntentFilter();
         send.addAction(Intent.ACTION_SEND);
         send.addAction(Intent.ACTION_SEND_MULTIPLE);
@@ -125,6 +137,7 @@
         } catch (IntentFilter.MalformedMimeTypeException e) {
             //will not happen
         }
+        // This is the only filter set on the opposite direction (from parent to managed profile).
         pm.addCrossProfileIntentFilter(send, parentUserId, managedProfileUserId, 0);
 
         IntentFilter getContent = new IntentFilter();
diff --git a/src/com/android/managedprovisioning/DeviceOwnerProvisioningActivity.java b/src/com/android/managedprovisioning/DeviceOwnerProvisioningActivity.java
index 7a114ed..1b12252 100644
--- a/src/com/android/managedprovisioning/DeviceOwnerProvisioningActivity.java
+++ b/src/com/android/managedprovisioning/DeviceOwnerProvisioningActivity.java
@@ -16,21 +16,19 @@
 
 package com.android.managedprovisioning;
 
-import static android.app.admin.DeviceAdminReceiver.ACTION_PROFILE_PROVISIONING_COMPLETE;
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_EMAIL_ADDRESS;
-
 import android.app.Activity;
 import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.admin.DevicePolicyManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.SystemProperties;
 import android.provider.Settings.Global;
 import android.provider.Settings.Secure;
+import android.service.persistentdata.PersistentDataBlockManager;
 import android.support.v4.content.LocalBroadcastManager;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
@@ -39,7 +37,7 @@
 
 import com.android.managedprovisioning.task.AddWifiNetworkTask;
 
-import java.util.Locale;
+import java.util.ArrayList;
 
 /**
  * This activity starts device owner provisioning:
@@ -65,34 +63,43 @@
  * repeated. We made sure that all tasks can be done twice without causing any problems.
  * </p>
  */
-public class DeviceOwnerProvisioningActivity extends Activity {
+public class DeviceOwnerProvisioningActivity extends Activity
+        implements UserConsentDialog.ConsentCallback {
+    private static final boolean DEBUG = false; // To control logging.
+
+    private static final String KEY_USER_CONSENTED = "user_consented";
+    private static final String KEY_CANCEL_DIALOG_SHOWN = "cancel_dialog_shown";
+    private static final String KEY_PENDING_INTENTS = "pending_intents";
+
     private static final int ENCRYPT_DEVICE_REQUEST_CODE = 1;
     private static final int WIFI_REQUEST_CODE = 2;
 
     private BroadcastReceiver mServiceMessageReceiver;
     private TextView mProgressTextView;
-    private Dialog mDialog; // The cancel or error dialog that is currently shown.
-    private boolean mDone; // Indicates whether the service has sent ACTION_PROVISIONING_SUCCESS.
+
+    // Indicates whether user consented by clicking on positive button of interstitial.
+    private boolean mUserConsented = false;
+
+    // Params that will be used after user consent.
+    // Extracted from the starting intent.
     private ProvisioningParams mParams;
 
+    // Indicates that the cancel dialog is shown.
+    private boolean mCancelDialogShown = false;
+
+    // List of intents received while cancel dialog is shown.
+    private ArrayList<Intent> mPendingProvisioningIntents = new ArrayList<Intent>();
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning activity ONCREATE");
 
-        ProvisionLogger.logd("Device owner provisioning activity ONCREATE");
-
-        // Check whether we can provision.
-        if (Global.getInt(getContentResolver(), Global.DEVICE_PROVISIONED, 0 /* default */) != 0) {
-            ProvisionLogger.loge("Device already provisioned.");
-            error(R.string.device_owner_error_already_provisioned, false /* no factory reset */);
-            return;
-        }
-        DevicePolicyManager dpm = (DevicePolicyManager)
-                getSystemService(Context.DEVICE_POLICY_SERVICE);
-        if (dpm.getDeviceOwner() != null) {
-            ProvisionLogger.loge("Device owner already present.");
-            error(R.string.device_owner_error_already_owned, false /* no factory reset */);
-            return;
+        if (savedInstanceState != null) {
+            mUserConsented = savedInstanceState.getBoolean(KEY_USER_CONSENTED, false);
+            mCancelDialogShown = savedInstanceState.getBoolean(KEY_CANCEL_DIALOG_SHOWN, false);
+            mPendingProvisioningIntents = savedInstanceState
+                    .getParcelableArrayList(KEY_PENDING_INTENTS);
         }
 
         // Setup the UI.
@@ -102,6 +109,26 @@
         mProgressTextView = (TextView) findViewById(R.id.prog_text);
         TextView titleText = (TextView) findViewById(R.id.title);
         if (titleText != null) titleText.setText(getString(R.string.setup_device));
+        if (mCancelDialogShown) showCancelResetDialog();
+
+        // Check whether we can provision.
+        if (Global.getInt(getContentResolver(), Global.DEVICE_PROVISIONED, 0 /* default */) != 0) {
+            ProvisionLogger.loge("Device already provisioned.");
+            error(R.string.device_owner_error_already_provisioned, false /* no factory reset */);
+            return;
+        }
+
+        if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
+            ProvisionLogger.loge("Device owner can only be set up for USER_OWNER.");
+            error(R.string.device_owner_error_general, false /* no factory reset */);
+            return;
+        }
+
+        if (factoryResetProtected()) {
+            ProvisionLogger.loge("Factory reset protection blocks provisioning.");
+            error(R.string.device_owner_error_already_provisioned, false /* no factory reset */);
+            return;
+        }
 
         // Setup broadcast receiver for feedback from service.
         mServiceMessageReceiver = new ServiceMessageReceiver();
@@ -122,27 +149,61 @@
         }
 
         // Ask to encrypt the device before proceeding
-        if (!EncryptDeviceActivity.isDeviceEncrypted()) {
-            requestEncryption(parser);
+        if (!(EncryptDeviceActivity.isDeviceEncrypted()
+                        || SystemProperties.getBoolean("persist.sys.no_req_encrypt", false))) {
+            requestEncryption(parser, mParams);
             finish();
             return;
             // System will reboot. Bootreminder will restart this activity.
         }
 
         // Have the user pick a wifi network if necessary.
-        if (!AddWifiNetworkTask.isConnectedToWifi(this) && TextUtils.isEmpty(mParams.mWifiSsid) &&
-                !TextUtils.isEmpty(mParams.mDeviceAdminPackageDownloadLocation)) {
+        if (!AddWifiNetworkTask.isConnectedToWifi(this) && TextUtils.isEmpty(mParams.mWifiSsid)) {
             requestWifiPick();
             return;
             // Wait for onActivityResult.
         }
 
-        startDeviceOwnerProvisioningService();
+        showInterstitialAndProvision(mParams);
     }
 
-    private void startDeviceOwnerProvisioningService() {
+    private boolean factoryResetProtected() {
+        // Can't refer to type directly here and API is hidden, so
+        // get it via reflection.
+        PersistentDataBlockManager pdbManager = (PersistentDataBlockManager)
+                getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
+        if (pdbManager == null) {
+            ProvisionLogger.loge("Unable to get persistent data block service");
+            return false;
+        }
+        return pdbManager.getDataBlockSize() > 0;
+    }
+
+    private void showInterstitialAndProvision(final ProvisioningParams params) {
+        if (mUserConsented || params.mStartedByNfc) {
+            startDeviceOwnerProvisioningService(params);
+        } else {
+            // Notify the user that the admin will have full control over the device,
+            // then start provisioning.
+            UserConsentDialog.newInstance(UserConsentDialog.DEVICE_OWNER)
+                    .show(getFragmentManager(), "UserConsentDialogFragment");
+        }
+    }
+
+    @Override
+    public void onDialogConsent() {
+        mUserConsented = true;
+        startDeviceOwnerProvisioningService(mParams);
+    }
+
+    @Override
+    public void onDialogCancel() {
+        finish();
+    }
+
+    private void startDeviceOwnerProvisioningService(ProvisioningParams params) {
         Intent intent = new Intent(this, DeviceOwnerProvisioningService.class);
-        intent.putExtra(DeviceOwnerProvisioningService.EXTRA_PROVISIONING_PARAMS, mParams);
+        intent.putExtra(DeviceOwnerProvisioningService.EXTRA_PROVISIONING_PARAMS, params);
         intent.putExtras(getIntent());
         startService(intent);
     }
@@ -152,68 +213,65 @@
         @Override
         public void onReceive(Context context, Intent intent)
         {
-            String action = intent.getAction();
-            if (action.equals(DeviceOwnerProvisioningService.ACTION_PROVISIONING_SUCCESS)) {
-                ProvisionLogger.logd("Successfully provisioned");
-                synchronized(this) {
-                    if (mDialog == null) {
-                        onProvisioningSuccess();
-                    } else {
-                        // Postpone finishing this activity till the user has decided whether
-                        // he/she wants to reset or not.
-                        mDone = true;
-                    }
-                }
-                return;
-            } else if (action.equals(DeviceOwnerProvisioningService.ACTION_PROVISIONING_ERROR)) {
-                int errorMessageId = intent.getIntExtra(
-                        DeviceOwnerProvisioningService.EXTRA_USER_VISIBLE_ERROR_ID_KEY,
-                        R.string.device_owner_error_general);
+            if (mCancelDialogShown) {
 
+                // Postpone handling the intent.
+                mPendingProvisioningIntents.add(intent);
+                return;
+            }
+            handleProvisioningIntent(intent);
+        }
+    }
+
+    private void handleProvisioningIntent(Intent intent) {
+        String action = intent.getAction();
+        if (action.equals(DeviceOwnerProvisioningService.ACTION_PROVISIONING_SUCCESS)) {
+            if (DEBUG) ProvisionLogger.logd("Successfully provisioned");
+            onProvisioningSuccess();
+        } else if (action.equals(DeviceOwnerProvisioningService.ACTION_PROVISIONING_ERROR)) {
+            int errorMessageId = intent.getIntExtra(
+                    DeviceOwnerProvisioningService.EXTRA_USER_VISIBLE_ERROR_ID_KEY,
+                    R.string.device_owner_error_general);
+
+            if (DEBUG) {
                 ProvisionLogger.logd("Error reported with code "
                         + getResources().getString(errorMessageId));
-                error(errorMessageId, true /* always factory reset */);
-            } else if (action.equals(DeviceOwnerProvisioningService.ACTION_PROGRESS_UPDATE)) {
-                int progressMessage = intent.getIntExtra(
-                        DeviceOwnerProvisioningService.EXTRA_PROGRESS_MESSAGE_ID_KEY, -1);
+            }
+            error(errorMessageId, true /* always factory reset */);
+        } else if (action.equals(DeviceOwnerProvisioningService.ACTION_PROGRESS_UPDATE)) {
+            int progressMessage = intent.getIntExtra(
+                    DeviceOwnerProvisioningService.EXTRA_PROGRESS_MESSAGE_ID_KEY, -1);
+            if (DEBUG) {
                 ProvisionLogger.logd("Progress update reported with code "
-                        + getResources().getString(progressMessage));
-                if (progressMessage >= 0) {
-                    progressUpdate(progressMessage);
-                }
+                    + getResources().getString(progressMessage));
+            }
+            if (progressMessage >= 0) {
+                progressUpdate(progressMessage);
             }
         }
     }
 
-    private void onProvisioningSuccess() {
-        stopService(new Intent(DeviceOwnerProvisioningActivity.this,
-                        DeviceOwnerProvisioningService.class));
 
-        // Skip the setup wizard.
+    private void onProvisioningSuccess() {
+        // The Setup wizards listens to this flag and finishes itself when it is set.
+        // It then fires a home intent, which we catch in the HomeReceiverActivity before sending
+        // the intent to notify the mdm that provisioning is complete.
         Global.putInt(getContentResolver(), Global.DEVICE_PROVISIONED, 1);
         Secure.putInt(getContentResolver(), Secure.USER_SETUP_COMPLETE, 1);
 
-        Intent completeIntent = new Intent(ACTION_PROFILE_PROVISIONING_COMPLETE);
-        completeIntent.setPackage(mParams.mDeviceAdminPackageName);
-        completeIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES |
-                Intent.FLAG_RECEIVER_FOREGROUND);
-        if (mParams.mManagedDeviceEmailAddress != null) {
-            completeIntent.putExtra(EXTRA_PROVISIONING_EMAIL_ADDRESS,
-                    mParams.mManagedDeviceEmailAddress);
-        }
-
-        sendBroadcast(completeIntent);
+        // Note: the DeviceOwnerProvisioningService will stop itself.
+        setResult(Activity.RESULT_OK);
         finish();
     }
 
-    private void requestEncryption(MessageParser messageParser) {
+    private void requestEncryption(MessageParser messageParser, ProvisioningParams params) {
         Intent encryptIntent = new Intent(DeviceOwnerProvisioningActivity.this,
                 EncryptDeviceActivity.class);
 
         Bundle resumeExtras = new Bundle();
         resumeExtras.putString(EncryptDeviceActivity.EXTRA_RESUME_TARGET,
                 EncryptDeviceActivity.TARGET_DEVICE_OWNER);
-        messageParser.addProvisioningParamsToBundle(resumeExtras, mParams);
+        messageParser.addProvisioningParamsToBundle(resumeExtras, params);
 
         encryptIntent.putExtra(EncryptDeviceActivity.EXTRA_RESUME, resumeExtras);
 
@@ -226,12 +284,17 @@
 
     @Override
     public void onBackPressed() {
+        if (mCancelDialogShown) {
+            return;
+        }
+
+        mCancelDialogShown = true;
         showCancelResetDialog();
     }
 
     private void showCancelResetDialog() {
-        AlertDialog.Builder alertBuilder =
-                new AlertDialog.Builder(DeviceOwnerProvisioningActivity.this)
+        new AlertDialog.Builder(DeviceOwnerProvisioningActivity.this)
+                .setCancelable(false)
                 .setTitle(R.string.device_owner_cancel_title)
                 .setMessage(R.string.device_owner_cancel_message)
                 .setNegativeButton(R.string.device_owner_cancel_cancel,
@@ -239,32 +302,35 @@
                             @Override
                             public void onClick(DialogInterface dialog,int id) {
                                 dialog.dismiss();
-                                synchronized(this) {
-                                    mDialog = null;
-                                    if (mDone) {
-                                        onProvisioningSuccess();
-                                    }
-                                }
+                                handlePendingIntents();
+                                mCancelDialogShown = false;
                             }
                         })
                 .setPositiveButton(R.string.device_owner_error_reset,
                         new DialogInterface.OnClickListener() {
                             @Override
                             public void onClick(DialogInterface dialog,int id) {
+                                dialog.dismiss();
+
                                 // Factory reset the device.
-                                sendBroadcast(
-                                        new Intent("android.intent.action.MASTER_CLEAR"));
+                                Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR);
+                                intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+                                intent.putExtra(Intent.EXTRA_REASON,
+                                        "DeviceOwnerProvisioningActivity.showCancelResetDialog()");
+                                sendBroadcast(intent);
                                 stopService(new Intent(DeviceOwnerProvisioningActivity.this,
                                                 DeviceOwnerProvisioningService.class));
                                 finish();
                             }
-                        });
+                        }).show();
+    }
 
-        if (mDialog != null) {
-            mDialog.dismiss();
+    private void handlePendingIntents() {
+        for (Intent intent : mPendingProvisioningIntents) {
+            if (DEBUG) ProvisionLogger.logd("Handling pending intent " + intent.getAction());
+            handleProvisioningIntent(intent);
         }
-        mDialog = alertBuilder.create();
-        mDialog.show();
+        mPendingProvisioningIntents.clear();
     }
 
     private void progressUpdate(int progressMessage) {
@@ -285,9 +351,9 @@
                                 DeviceOwnerProvisioningService.class));
                 finish();
             } else if (resultCode == RESULT_OK) {
-                ProvisionLogger.logd("Wifi request result is OK");
+                if (DEBUG) ProvisionLogger.logd("Wifi request result is OK");
                 if (AddWifiNetworkTask.isConnectedToWifi(this)) {
-                    startDeviceOwnerProvisioningService();
+                    showInterstitialAndProvision(mParams);
                 } else {
                     requestWifiPick();
                 }
@@ -297,16 +363,22 @@
 
     private void error(int dialogMessage, boolean resetRequired) {
         AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this)
-            .setTitle(R.string.provisioning_error_title)
-            .setMessage(dialogMessage)
-            .setCancelable(false);
+                .setTitle(R.string.provisioning_error_title)
+                .setMessage(dialogMessage)
+                .setCancelable(false);
         if (resetRequired) {
             alertBuilder.setPositiveButton(R.string.device_owner_error_reset,
                     new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog,int id) {
+                            dialog.dismiss();
+
                             // Factory reset the device.
-                            sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR"));
+                            Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR);
+                            intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+                            intent.putExtra(Intent.EXTRA_REASON,
+                                    "DeviceOwnerProvisioningActivity.error()");
+                            sendBroadcast(intent);
                             stopService(new Intent(DeviceOwnerProvisioningActivity.this,
                                             DeviceOwnerProvisioningService.class));
                             finish();
@@ -317,6 +389,8 @@
                     new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog,int id) {
+                            dialog.dismiss();
+
                             // Close activity.
                             stopService(new Intent(DeviceOwnerProvisioningActivity.this,
                                             DeviceOwnerProvisioningService.class));
@@ -324,45 +398,47 @@
                         }
                     });
         }
-        mDialog = alertBuilder.create();
-        mDialog.show();
+        alertBuilder.show();
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        outState.putBoolean(KEY_USER_CONSENTED, mUserConsented);
+        outState.putBoolean(KEY_CANCEL_DIALOG_SHOWN, mCancelDialogShown);
+        outState.putParcelableArrayList(KEY_PENDING_INTENTS, mPendingProvisioningIntents);
     }
 
     @Override
     public void onDestroy() {
-        ProvisionLogger.logd("Device owner provisioning activity ONDESTROY");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning activity ONDESTROY");
         if (mServiceMessageReceiver != null) {
             LocalBroadcastManager.getInstance(this).unregisterReceiver(mServiceMessageReceiver);
             mServiceMessageReceiver = null;
         }
-        if (mDialog != null) {
-            mDialog.dismiss();
-            mDialog = null;
-        }
         super.onDestroy();
     }
 
     @Override
     protected void onRestart() {
-        ProvisionLogger.logd("Device owner provisioning activity ONRESTART");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning activity ONRESTART");
         super.onRestart();
     }
 
     @Override
     protected void onResume() {
-        ProvisionLogger.logd("Device owner provisioning activity ONRESUME");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning activity ONRESUME");
         super.onResume();
     }
 
     @Override
     protected void onPause() {
-        ProvisionLogger.logd("Device owner provisioning activity ONPAUSE");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning activity ONPAUSE");
         super.onPause();
     }
 
     @Override
     protected void onStop() {
-        ProvisionLogger.logd("Device owner provisioning activity ONSTOP");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning activity ONSTOP");
         super.onStop();
     }
 }
diff --git a/src/com/android/managedprovisioning/DeviceOwnerProvisioningService.java b/src/com/android/managedprovisioning/DeviceOwnerProvisioningService.java
index 2181e35..109bb98 100644
--- a/src/com/android/managedprovisioning/DeviceOwnerProvisioningService.java
+++ b/src/com/android/managedprovisioning/DeviceOwnerProvisioningService.java
@@ -16,13 +16,20 @@
 
 package com.android.managedprovisioning;
 
+import static android.app.admin.DeviceAdminReceiver.ACTION_PROFILE_PROVISIONING_COMPLETE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE;
+
 import android.app.AlarmManager;
 import android.app.Service;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.os.UserHandle;
 import android.support.v4.content.LocalBroadcastManager;
 import android.text.TextUtils;
 
@@ -47,6 +54,8 @@
  * </p>
  */
 public class DeviceOwnerProvisioningService extends Service {
+    private static final boolean DEBUG = false; // To control logging.
+
     /**
      * Intent action to activate the CDMA phone connection by OTASP.
      * This is not necessary for a GSM phone connection, which is activated automatically.
@@ -73,6 +82,11 @@
     protected static final String ACTION_REQUEST_WIFI_PICK =
             "com.android.managedprovisioning.request_wifi_pick";
 
+    // Intent action used by the HomeReceiverActivity to notify this Service that a HOME intent was
+    // received, which indicates that the Setup wizard has closed after provisioning completed.
+    protected static final String ACTION_HOME_INDIRECT =
+            "com.android.managedprovisioning.home_indirect";
+
     // Indicates whether provisioning has started.
     private boolean mProvisioningInFlight = false;
 
@@ -94,13 +108,15 @@
 
     private ProvisioningParams mParams;
 
+    private BroadcastReceiver mIndirectHomeReceiver;
+
     @Override
     public int onStartCommand(final Intent intent, int flags, int startId) {
-        ProvisionLogger.logd("Device owner provisioning service ONSTARTCOMMAND.");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning service ONSTARTCOMMAND.");
 
         synchronized (this) { // Make operations on mProvisioningInFlight atomic.
             if (mProvisioningInFlight) {
-                ProvisionLogger.logd("Provisioning already in flight.");
+                if (DEBUG) ProvisionLogger.logd("Provisioning already in flight.");
 
                 sendProgressUpdateToActivity();
 
@@ -115,12 +131,14 @@
                 }
             } else {
                 mProvisioningInFlight = true;
-                ProvisionLogger.logd("First start of the service.");
+                if (DEBUG) ProvisionLogger.logd("First start of the service.");
                 progressUpdate(R.string.progress_data_process);
 
                 // Load the ProvisioningParams (from message in Intent).
                 mParams = (ProvisioningParams) intent.getParcelableExtra(EXTRA_PROVISIONING_PARAMS);
 
+                registerHomeIntentReceiver();
+
                 // Do the work on a separate thread.
                 new Thread(new Runnable() {
                         public void run() {
@@ -133,28 +151,79 @@
         return START_NOT_STICKY;
     }
 
+    // Register the receiver for the ACTION_HOME_INDIRECT intent.
+    // The ACTION_HOME_INDIRECT intent is used to notify this service that the home intent was send.
+    // After receiving that intent we send the complete intent to the mdm.
+    // Note: if we would send the complete intent earlier, the home intent can close the mdm.
+    private void registerHomeIntentReceiver() {
+        mIndirectHomeReceiver = new IndirectHomeReceiver();
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(DeviceOwnerProvisioningService.ACTION_HOME_INDIRECT);
+        LocalBroadcastManager.getInstance(this).registerReceiver(mIndirectHomeReceiver, filter);
+    }
+
+    class IndirectHomeReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (!mDone) {
+                return;
+            }
+
+            // Disable the HomeReceiverActivity. It's no longer of use.
+            PackageManager pm = getPackageManager();
+            pm.setComponentEnabledSetting(new ComponentName(DeviceOwnerProvisioningService.this,
+                            HomeReceiverActivity.class), PackageManager
+                    .COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
+
+            // Send complete intent to mdm.
+            Intent result = new Intent(ACTION_PROFILE_PROVISIONING_COMPLETE);
+            result.setPackage(mParams.mDeviceAdminPackageName);
+            result.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES |
+                    Intent.FLAG_RECEIVER_FOREGROUND);
+            if (mParams.mAdminExtrasBundle != null) {
+                result.putExtra(EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE,
+                        mParams.mAdminExtrasBundle);
+            }
+            sendBroadcast(result);
+            stopSelf();
+        }
+    }
+
+
     /**
      * This is the core method of this class. It goes through every provisioning step.
      */
     private void startDeviceOwnerProvisioning(final ProvisioningParams params) {
-        ProvisionLogger.logd("Starting device owner provisioning");
+        if (DEBUG) ProvisionLogger.logd("Starting device owner provisioning");
 
         // Construct Tasks. Do not start them yet.
-        mAddWifiNetworkTask = new AddWifiNetworkTask(this, params.mWifiSsid,
-                params.mWifiHidden, params.mWifiSecurityType, params.mWifiPassword,
-                params.mWifiProxyHost, params.mWifiProxyPort, params.mWifiProxyBypassHosts,
-                params.mWifiPacUrl, new AddWifiNetworkTask.Callback() {
-                        @Override
-                        public void onSuccess() {
-                            progressUpdate(R.string.progress_download);
-                            mDownloadPackageTask.run();
-                        }
+        if (TextUtils.isEmpty(params.mWifiSsid)) {
+            mAddWifiNetworkTask = null;
+        } else {
+            mAddWifiNetworkTask = new AddWifiNetworkTask(this, params.mWifiSsid,
+                    params.mWifiHidden, params.mWifiSecurityType, params.mWifiPassword,
+                    params.mWifiProxyHost, params.mWifiProxyPort, params.mWifiProxyBypassHosts,
+                    params.mWifiPacUrl, new AddWifiNetworkTask.Callback() {
+                            @Override
+                            public void onSuccess() {
+                                if (!TextUtils.isEmpty(params.mDeviceAdminPackageDownloadLocation)) {
+                                    // Download, install, set as device owner, delete apps.
+                                    progressUpdate(R.string.progress_download);
+                                    mDownloadPackageTask.run();
+                                } else {
+                                    // Device Admin will not be downloaded (but is already present):
+                                    // Just set as device owner, delete apps.
+                                    progressUpdate(R.string.progress_set_owner);
+                                    mSetDevicePolicyTask.run();
+                                }
+                            }
 
-                        @Override
-                        public void onError(){
-                            error(R.string.device_owner_error_wifi);
-                        }
-                });
+                            @Override
+                            public void onError(){
+                                error(R.string.device_owner_error_wifi);
+                            }
+                        });
+        }
 
         mDownloadPackageTask = new DownloadPackageTask(this,
                 params.mDeviceAdminPackageDownloadLocation, params.mDeviceAdminPackageChecksum,
@@ -214,7 +283,11 @@
                 new SetDevicePolicyTask.Callback() {
                     @Override
                     public void onSuccess() {
-                        mDeleteNonRequiredAppsTask.run();
+                        if (params.mLeaveAllSystemAppsEnabled) {
+                            onProvisioningSuccess(params.mDeviceAdminPackageName);
+                        } else {
+                            mDeleteNonRequiredAppsTask.run();
+                        }
                     }
 
                     @Override
@@ -233,9 +306,11 @@
                     }
                 });
 
-        mDeleteNonRequiredAppsTask =  new DeleteNonRequiredAppsTask(
-                this, params.mDeviceAdminPackageName, 0 /* primary user's UserId */,
+        mDeleteNonRequiredAppsTask = new DeleteNonRequiredAppsTask(
+                this, params.mDeviceAdminPackageName, UserHandle.USER_OWNER,
                 R.array.required_apps_managed_device, R.array.vendor_required_apps_managed_device,
+                true /* We are creating a new profile */,
+                false /* Do not disable INSTALL_SHORTCUT listeners */,
                 new DeleteNonRequiredAppsTask.Callback() {
                     public void onSuccess() {
                         // Done with provisioning. Success.
@@ -249,12 +324,22 @@
                 });
 
         // Start first task, which starts next task in its callback, etc.
-        if (!TextUtils.isEmpty(params.mDeviceAdminPackageDownloadLocation)) {
-            // Device Admin has to be downloaded:
-            // Connect to wifi, download, install, set as device owner, delete apps.
+        startFirstTask(params);
+    }
+
+    private void startFirstTask(final ProvisioningParams params) {
+        if (mAddWifiNetworkTask != null) {
+
+            // Connect to wifi.
             progressUpdate(R.string.progress_connect_to_wifi);
             mAddWifiNetworkTask.run();
+        } else if (!TextUtils.isEmpty(params.mDeviceAdminPackageDownloadLocation)) {
+
+            // Download, install, set as device owner, delete apps.
+            progressUpdate(R.string.progress_download);
+            mDownloadPackageTask.run();
         } else {
+
             // Device Admin will not be downloaded (but is already present):
             // Just set as device owner, delete apps.
             progressUpdate(R.string.progress_set_owner);
@@ -269,7 +354,10 @@
     }
 
     private void sendError() {
-        ProvisionLogger.logd("Reporting Error: " + getResources().getString(mLastErrorMessage));
+        if (DEBUG) {
+            ProvisionLogger.logd("Reporting Error: " + getResources()
+                .getString(mLastErrorMessage));
+        }
         Intent intent = new Intent(ACTION_PROVISIONING_ERROR);
         intent.setClass(this, DeviceOwnerProvisioningActivity.ServiceMessageReceiver.class);
         intent.putExtra(EXTRA_USER_VISIBLE_ERROR_ID_KEY, mLastErrorMessage);
@@ -277,8 +365,10 @@
     }
 
     private void progressUpdate(int progressMessage) {
-        ProvisionLogger.logd("Reporting progress update: "
-                + getResources().getString(progressMessage));
+        if (DEBUG) {
+            ProvisionLogger.logd("Reporting progress update: " + getResources()
+                .getString(progressMessage));
+        }
         mLastProgressMessage = progressMessage;
         sendProgressUpdateToActivity();
     }
@@ -291,8 +381,17 @@
     }
 
     private void onProvisioningSuccess(String deviceAdminPackage) {
-        ProvisionLogger.logv("Reporting success.");
+        if (DEBUG) ProvisionLogger.logd("Reporting success.");
         mDone = true;
+
+        // Enable the HomeReceiverActivity, since the DeviceOwnerProvisioningActivity will shutdown
+        // the Setup wizard soon, which will result in a home intent that should be caught by the
+        // HomeReceiverActivity.
+        PackageManager pm = getPackageManager();
+        pm.setComponentEnabledSetting(new ComponentName(DeviceOwnerProvisioningService.this,
+                        HomeReceiverActivity.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+                PackageManager.DONT_KILL_APP);
+
         Intent successIntent = new Intent(ACTION_PROVISIONING_SUCCESS);
         successIntent.setClass(this, DeviceOwnerProvisioningActivity.ServiceMessageReceiver.class);
         LocalBroadcastManager.getInstance(this).sendBroadcast(successIntent);
@@ -306,7 +405,7 @@
         // Start CDMA activation to enable phone calls.
         final Intent intent = new Intent(ACTION_PERFORM_CDMA_PROVISIONING);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        ProvisionLogger.logv("Starting cdma activation activity");
+        if (DEBUG) ProvisionLogger.logd("Starting cdma activation activity");
         startActivity(intent); // Activity will be a Nop if not a CDMA device.
     }
 
@@ -314,11 +413,11 @@
         try {
             final AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
             if (timeZone != null) {
-                ProvisionLogger.logd("Setting time zone to " + timeZone);
+                if (DEBUG) ProvisionLogger.logd("Setting time zone to " + timeZone);
                 am.setTimeZone(timeZone);
             }
             if (localTime > 0) {
-                ProvisionLogger.logd("Setting time to " + localTime);
+                if (DEBUG) ProvisionLogger.logd("Setting time to " + localTime);
                 am.setTime(localTime);
             }
         } catch (Exception e) {
@@ -332,7 +431,7 @@
             return;
         }
         try {
-            ProvisionLogger.logd("Setting locale to " + locale);
+            if (DEBUG) ProvisionLogger.logd("Setting locale to " + locale);
             // If locale is different from current locale this results in a configuration change,
             // which will trigger the restarting of the activity.
             LocalePicker.updateLocale(locale);
@@ -344,18 +443,23 @@
 
     @Override
     public void onCreate () {
-        ProvisionLogger.logd("Device owner provisioning service ONCREATE.");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning service ONCREATE.");
     }
 
     @Override
     public void onDestroy () {
-        ProvisionLogger.logd("Device owner provisioning service ONDESTROY");
+        if (DEBUG) ProvisionLogger.logd("Device owner provisioning service ONDESTROY");
         if (mAddWifiNetworkTask != null) {
             mAddWifiNetworkTask.cleanUp();
         }
         if (mDownloadPackageTask != null) {
             mDownloadPackageTask.cleanUp();
         }
+        if (mIndirectHomeReceiver != null) {
+            LocalBroadcastManager.getInstance(this).unregisterReceiver(mIndirectHomeReceiver);
+            mIndirectHomeReceiver = null;
+        }
+
     }
 
     @Override
diff --git a/src/com/android/managedprovisioning/HomeReceiverActivity.java b/src/com/android/managedprovisioning/HomeReceiverActivity.java
new file mode 100644
index 0000000..3521949
--- /dev/null
+++ b/src/com/android/managedprovisioning/HomeReceiverActivity.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 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.
+ */
+
+package com.android.managedprovisioning;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.content.LocalBroadcastManager;
+
+/*
+ * This class is used to make sure that we start the mdm after we shut the Setup wizard down.
+ * The shut down of the Setup wizard is initiated in the DeviceOwnerProvisioningActivity by setting
+ * Global.DEVICE_PROVISIONED. This will cause the Setup wizard to shut down and send a HOME intent.
+ * Instead of opening the home screen we want to open the mdm, so the HOME intent is caught by this
+ * activity instead, which notifies the DeviceOwnerProvisioningService to send the
+ * ACTION_PROFILE_PROVISIONING_COMPLETE to the mdm, which will then open up.
+ */
+
+public class HomeReceiverActivity extends Activity {
+    @Override
+   public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Intent indirectIntent = new Intent(DeviceOwnerProvisioningService.ACTION_HOME_INDIRECT);
+        LocalBroadcastManager.getInstance(this).sendBroadcast(indirectIntent);
+        finish();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/managedprovisioning/IntentStore.java b/src/com/android/managedprovisioning/IntentStore.java
index 58b1f24..ae5839a 100644
--- a/src/com/android/managedprovisioning/IntentStore.java
+++ b/src/com/android/managedprovisioning/IntentStore.java
@@ -15,12 +15,23 @@
  */
 package com.android.managedprovisioning;
 
+import android.accounts.Account;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
-
 import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.util.Xml;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+import org.xmlpull.v1.XmlSerializer;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
 
 /**
  * Helper class to load/save resume information from Intents into a SharedPreferences.
@@ -29,26 +40,60 @@
     private SharedPreferences mPrefs;
     private String mPrefsName; // Name of the file where mPrefs is stored.
     private Context mContext;
-    private String[] mStringKeys;
-    private String[] mLongKeys;
-    private String[] mIntKeys;
-    private String[] mBooleanKeys;
     private ComponentName mIntentTarget;
 
+    // Key arrays should never be null.
+    private String[] mStringKeys = new String[0];
+    private String[] mLongKeys = new String[0];
+    private String[] mIntKeys = new String[0];
+    private String[] mBooleanKeys = new String[0];
+    private String[] mPersistableBundleKeys = new String[0];
+    private String[] mAccountKeys = new String[0];
+
+    private static final String TAG_PERSISTABLEBUNDLE = "persistable_bundle";
+    private static final String TAG_ACCOUNT = "account";
+    private static final String ATTRIBUTE_ACCOUNT_NAME = "name";
+    private static final String ATTRIBUTE_ACCOUNT_TYPE = "type";
+
     private static final String IS_SET = "isSet";
 
-    public IntentStore(Context context, String[] stringKeys, String[] longKeys, String[] intKeys,
-            String[] booleanKeys, ComponentName intentTarget, String preferencesName) {
+    public IntentStore(Context context, ComponentName intentTarget, String preferencesName) {
         mContext = context;
         mPrefsName = preferencesName;
         mPrefs = context.getSharedPreferences(preferencesName, Context.MODE_PRIVATE);
-        mStringKeys = stringKeys;
-        mLongKeys = longKeys;
-        mIntKeys = intKeys;
-        mBooleanKeys = booleanKeys;
         mIntentTarget = intentTarget;
     }
 
+    public IntentStore setStringKeys(String[] keys) {
+        mStringKeys = (keys == null) ? new String[0] : keys;
+        return this;
+    }
+
+    public IntentStore setLongKeys(String[] keys) {
+        mLongKeys = (keys == null) ? new String[0] : keys;
+        return this;
+    }
+
+    public IntentStore setIntKeys(String[] keys) {
+        mIntKeys = (keys == null) ? new String[0] : keys;
+        return this;
+    }
+
+    public IntentStore setBooleanKeys(String[] keys) {
+        mBooleanKeys = (keys == null) ? new String[0] : keys;
+        return this;
+    }
+
+    public IntentStore setAccountKeys(String[] keys) {
+        mAccountKeys = (keys == null) ? new String[0] : keys;
+        return this;
+    }
+
+    public IntentStore setPersistableBundleKeys(String[] keys) {
+        mPersistableBundleKeys = (keys == null) ? new String[0] : keys;
+        return this;
+    }
+
     public void clear() {
         mPrefs.edit().clear().commit();
     }
@@ -69,6 +114,22 @@
         for (String key : mBooleanKeys) {
             editor.putBoolean(key, data.getBoolean(key));
         }
+        for (String key : mAccountKeys) {
+            Account account = (Account) data.getParcelable(key);
+            String accountString = accountToString(account);
+            if (accountString != null) {
+                editor.putString(key, accountString);
+            }
+        }
+        for (String key : mPersistableBundleKeys) {
+
+            // Cast should be guaranteed to succeed by check in the provisioning activities.
+            String bundleString = persistableBundleToString((PersistableBundle) data
+                    .getParcelable(key));
+            if (bundleString != null) {
+                editor.putString(key, bundleString);
+            }
+        }
         editor.putBoolean(IS_SET, true);
         editor.commit();
     }
@@ -102,7 +163,123 @@
                 result.putExtra(key, mPrefs.getBoolean(key, false));
             }
         }
+        for (String key : mAccountKeys) {
+            if (mPrefs.contains(key)) {
+                Account account = stringToAccount(mPrefs.getString(key, null));
+                if (account != null) {
+                    result.putExtra(key, account);
+                }
+            }
+        }
+        for (String key : mPersistableBundleKeys) {
+            if (mPrefs.contains(key)) {
+                PersistableBundle bundle = stringToPersistableBundle(mPrefs.getString(key, null));
+                if (bundle != null) {
+                    result.putExtra(key, bundle);
+                }
+            }
+        }
 
         return result;
     }
+
+    private String accountToString(Account account) {
+        if (account == null) {
+            return null;
+        }
+        StringWriter writer = new StringWriter();
+        XmlSerializer serializer = Xml.newSerializer();
+        try {
+            serializer.setOutput(writer);
+            serializer.startDocument(null, true);
+            serializer.startTag(null, TAG_ACCOUNT);
+            serializer.attribute(null /* namespace */, ATTRIBUTE_ACCOUNT_NAME, account.name);
+            serializer.attribute(null /* namespace */, ATTRIBUTE_ACCOUNT_TYPE, account.type);
+            serializer.endTag(null, TAG_ACCOUNT);
+            serializer.endDocument();
+        } catch (IOException e) {
+            ProvisionLogger.loge("Account could not be stored as string.", e);
+            return null;
+        }
+
+        return writer.toString();
+    }
+
+    private Account stringToAccount(String string) {
+        if (string == null) {
+            return null;
+        }
+        XmlPullParserFactory factory;
+        XmlPullParser parser;
+        try {
+            factory = XmlPullParserFactory.newInstance();
+
+            parser = factory.newPullParser();
+            parser.setInput(new StringReader(string));
+
+            if ((parser.next() == XmlPullParser.START_TAG)
+                    && TAG_ACCOUNT.equals(parser.getName())) {
+                String name = parser.getAttributeValue(null /* namespace */,
+                        ATTRIBUTE_ACCOUNT_NAME);
+                String type = parser.getAttributeValue(null /* namespace */,
+                        ATTRIBUTE_ACCOUNT_TYPE);
+                if (name != null && type != null) {
+                    return new Account(name, type);
+                }
+            }
+        } catch (IOException|XmlPullParserException e) {
+            ProvisionLogger.loge(e);
+            // Fall through.
+        }
+        ProvisionLogger.loge("Account could not be restored from string " + string);
+        return null;
+    }
+
+    private String persistableBundleToString(PersistableBundle bundle) {
+        if (bundle == null) {
+            return null;
+        }
+
+        StringWriter writer = new StringWriter();
+        XmlSerializer serializer = Xml.newSerializer();
+        try {
+            serializer.setOutput(writer);
+            serializer.startDocument(null, true);
+            serializer.startTag(null, TAG_PERSISTABLEBUNDLE);
+            bundle.saveToXml(serializer);
+            serializer.endTag(null, TAG_PERSISTABLEBUNDLE);
+            serializer.endDocument();
+        } catch (IOException|XmlPullParserException e) {
+            ProvisionLogger.loge("Persistable bundle could not be stored as string.", e);
+            return null;
+        }
+
+        return writer.toString();
+    }
+
+    private PersistableBundle stringToPersistableBundle(String string) {
+        if (string == null) {
+            return null;
+        }
+
+        XmlPullParserFactory factory;
+        XmlPullParser parser;
+        try {
+            factory = XmlPullParserFactory.newInstance();
+
+            parser = factory.newPullParser();
+            parser.setInput(new StringReader(string));
+
+            if (parser.next() == XmlPullParser.START_TAG) {
+                if (TAG_PERSISTABLEBUNDLE.equals(parser.getName())) {
+                    return PersistableBundle.restoreFromXml(parser);
+                }
+            }
+        } catch (IOException|XmlPullParserException e) {
+            ProvisionLogger.loge(e);
+            // Fall through.
+        }
+        ProvisionLogger.loge("Persistable bundle could not be restored from string " + string);
+        return null;
+    }
 }
diff --git a/src/com/android/managedprovisioning/ManagedProvisioningActivity.java b/src/com/android/managedprovisioning/ManagedProvisioningActivity.java
deleted file mode 100644
index 798fbc7..0000000
--- a/src/com/android/managedprovisioning/ManagedProvisioningActivity.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
- * Copyright 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.
- */
-
-package com.android.managedprovisioning;
-
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.UserInfo;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.SystemProperties;
-import android.os.UserManager;
-import android.support.v4.content.LocalBroadcastManager;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.Button;
-
-import java.util.List;
-
-/**
- * Managed provisioning sets up a separate profile on a device whose primary user is already set up.
- * The typical example is setting up a corporate profile that is controlled by their employer on a
- * users personal device to keep personal and work data separate.
- *
- * The activity handles the input validation and UI for managed profile provisioning.
- * and starts the {@link ManagedProvisioningService}, which runs through the setup steps in an
- * async task.
- */
-// TODO: Proper error handling to report back to the user and potentially the mdm.
-public class ManagedProvisioningActivity extends Activity {
-
-    private static final String MANAGE_USERS_PERMISSION = "android.permission.MANAGE_USERS";
-
-    private static final String EXTRA_USER_HAS_CONSENTED_PROVISIONING =
-            "com.android.managedprovisioning.EXTRA_USER_HAS_CONSENTED_PROVISIONING";
-
-    // TODO remove these when the new constant values are in use in all relevant places.
-    protected static final String EXTRA_LEGACY_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME =
-            "deviceAdminPackageName";
-    protected static final String EXTRA_LEGACY_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME =
-            "defaultManagedProfileName";
-
-    protected static final int ENCRYPT_DEVICE_REQUEST_CODE = 2;
-
-    private String mMdmPackageName;
-    private BroadcastReceiver mServiceMessageReceiver;
-    private boolean mUserConsented;
-
-    private View mContentView;
-    private View mMainTextView;
-    private View mProgressView;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        ProvisionLogger.logd("Managed provisioning activity ONCREATE");
-
-        PackageManager pm = getPackageManager();
-        if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_PROFILES)) {
-            showErrorAndClose(R.string.managed_provisioning_not_supported,
-                    "Exiting managed provisioning, managed profiles feature is not available");
-            return;
-        }
-
-        // Setup broadcast receiver for feedback from service.
-        mServiceMessageReceiver = new ServiceMessageReceiver();
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(ManagedProvisioningService.ACTION_PROVISIONING_SUCCESS);
-        filter.addAction(ManagedProvisioningService.ACTION_PROVISIONING_ERROR);
-        LocalBroadcastManager.getInstance(this).registerReceiver(mServiceMessageReceiver, filter);
-
-        // Initialize member variables from the intent, stop if the intent wasn't valid.
-        try {
-            initialize(getIntent());
-        } catch (ManagedProvisioningFailedException e) {
-            showErrorAndClose(R.string.managed_provisioning_error_text, e.getMessage());
-            return;
-        }
-
-        final LayoutInflater inflater = getLayoutInflater();
-        mContentView = inflater.inflate(R.layout.user_consent, null);
-        mMainTextView = mContentView.findViewById(R.id.main_text_container);
-        mProgressView = mContentView.findViewById(R.id.progress_container);
-        setContentView(mContentView);
-        setMdmIcon(mMdmPackageName, mContentView);
-
-        // Calling package has to equal the requested device admin package or has to be system.
-        String callingPackage = getCallingPackage();
-        if (callingPackage == null) {
-            showErrorAndClose(R.string.managed_provisioning_error_text, "Calling package is null. "
-                    + "Was startActivityForResult used to start this activity?");
-            return;
-        }
-        boolean hasManageUsersPermission = packageHasManageUsersPermission(callingPackage);
-        if (!(callingPackage.equals(mMdmPackageName) || hasManageUsersPermission)) {
-            showErrorAndClose(R.string.managed_provisioning_error_text, "Permission denied, "
-                    + "calling package tried to set a different package as profile owner. "
-                    + "The system MANAGE_USERS permission is required.");
-            return;
-        }
-
-
-        // Don't continue if the caller tries to skip user consent without permission.
-        // Only system apps with the MANAGE_USERS permission can claim that the user consented.
-        boolean needsPermission = getIntent().hasExtra(EXTRA_USER_HAS_CONSENTED_PROVISIONING);
-        if (needsPermission && !hasManageUsersPermission) {
-            showErrorAndClose(R.string.managed_provisioning_error_text, "Permission denied,"
-                    + "you need MANAGE_USERS permission to skip user consent");
-            return;
-        }
-
-        // If there is already a managed profile, allow the user to cancel or delete it.
-        int existingManagedProfileUserId = alreadyHasManagedProfile();
-        if (existingManagedProfileUserId != -1) {
-            showManagedProfileExistsDialog(existingManagedProfileUserId);
-        } else {
-            showStartProvisioningScreen();
-        }
-    }
-
-    private void showStartProvisioningScreen() {
-
-        // Skip the user consent if user has previously consented.
-        mUserConsented = getIntent().getBooleanExtra(EXTRA_USER_HAS_CONSENTED_PROVISIONING,
-                false);
-        if (mUserConsented) {
-            checkEncryptedAndStartProvisioningService();
-        } else {
-            Button positiveButton = (Button) mContentView.findViewById(R.id.positive_button);
-            positiveButton.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    checkEncryptedAndStartProvisioningService();
-                }
-            });
-        }
-    }
-
-    private boolean packageHasManageUsersPermission(String pkg) {
-        int packagePermission = this.getPackageManager()
-                .checkPermission(MANAGE_USERS_PERMISSION, pkg);
-        if (packagePermission == PackageManager.PERMISSION_GRANTED) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    class ServiceMessageReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (action.equals(ManagedProvisioningService.ACTION_PROVISIONING_SUCCESS)) {
-                ProvisionLogger.logd("Successfully provisioned");
-                ManagedProvisioningActivity.this.setResult(Activity.RESULT_OK);
-                ManagedProvisioningActivity.this.finish();
-                return;
-            } else if (action.equals(ManagedProvisioningService.ACTION_PROVISIONING_ERROR)) {
-                String errorLogMessage = intent.getStringExtra(
-                        ManagedProvisioningService.EXTRA_LOG_MESSAGE_KEY);
-                ProvisionLogger.logd("Error reported: " + errorLogMessage);
-                showErrorAndClose(R.string.managed_provisioning_error_text, errorLogMessage);
-                return;
-            }
-        }
-    }
-
-    private void setMdmIcon(String packageName, View contentView) {
-        if (packageName != null) {
-            PackageManager pm = getPackageManager();
-            try {
-                ApplicationInfo ai = pm.getApplicationInfo(packageName, /* default flags */ 0);
-                if (ai != null) {
-                    Drawable packageIcon = pm.getApplicationIcon(packageName);
-                    ImageView imageView = (ImageView) contentView.findViewById(R.id.mdm_icon_view);
-                    imageView.setImageDrawable(packageIcon);
-
-                    String appLabel = pm.getApplicationLabel(ai).toString();
-                    TextView deviceManagerName = (TextView) contentView
-                            .findViewById(R.id.device_manager_name);
-                    deviceManagerName.setText(appLabel);
-                }
-            } catch (PackageManager.NameNotFoundException e) {
-                // Package does not exist, ignore. Should never happen.
-                ProvisionLogger.loge("Package does not exist. Should never happen.");
-            }
-        }
-    }
-
-    /**
-     * Checks if all required provisioning parameters are provided.
-     * Does not check for extras that are optional such as the email address.
-     *
-     * @param intent The intent that started provisioning
-     */
-    private void initialize(Intent intent) throws ManagedProvisioningFailedException {
-
-        // Validate package name and check if the package is installed
-        mMdmPackageName = getMdmPackageName(intent);
-        if (TextUtils.isEmpty(mMdmPackageName)) {
-            throw new ManagedProvisioningFailedException("Missing intent extra: "
-                    + EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
-        } else {
-            try {
-                this.getPackageManager().getPackageInfo(mMdmPackageName, 0);
-            } catch (NameNotFoundException e) {
-                throw new ManagedProvisioningFailedException("Mdm "+ mMdmPackageName
-                        + " is not installed. " + e);
-            }
-        }
-    }
-
-    private String getMdmPackageName(Intent intent) {
-        String name = intent.getStringExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
-        if (TextUtils.isEmpty(name)) {
-            name = intent.getStringExtra(EXTRA_LEGACY_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
-        }
-        return name;
-    }
-
-    @Override
-    public void onBackPressed() {
-        // TODO: Handle this graciously by stopping the provisioning flow and cleaning up.
-    }
-
-    @Override
-    public void onDestroy() {
-        LocalBroadcastManager.getInstance(this).unregisterReceiver(mServiceMessageReceiver);
-        super.onDestroy();
-    }
-
-    /**
-     * If the device is encrypted start the service which does the provisioning, otherwise ask for
-     * user consent to encrypt the device.
-     */
-    private void checkEncryptedAndStartProvisioningService() {
-        if (EncryptDeviceActivity.isDeviceEncrypted()
-                || SystemProperties.getBoolean("persist.sys.no_req_encrypt", false)) {
-            // Remove any pre-provisioning UI in favour of progress display
-            BootReminder.cancelProvisioningReminder(this);
-            mProgressView.setVisibility(View.VISIBLE);
-            mMainTextView.setVisibility(View.GONE);
-
-            Intent intent = new Intent(this, ManagedProvisioningService.class);
-            intent.putExtras(getIntent());
-            startService(intent);
-        } else {
-            Bundle resumeExtras = getIntent().getExtras();
-            resumeExtras.putString(EncryptDeviceActivity.EXTRA_RESUME_TARGET,
-                    EncryptDeviceActivity.TARGET_PROFILE_OWNER);
-            Intent encryptIntent = new Intent(this, EncryptDeviceActivity.class)
-                    .putExtra(EncryptDeviceActivity.EXTRA_RESUME, resumeExtras);
-            startActivityForResult(encryptIntent, ENCRYPT_DEVICE_REQUEST_CODE);
-            // Continue in onActivityResult or after reboot.
-        }
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == ENCRYPT_DEVICE_REQUEST_CODE) {
-            if (resultCode == RESULT_CANCELED) {
-                ProvisionLogger.loge("User canceled device encryption.");
-                setResult(Activity.RESULT_CANCELED);
-                finish();
-            }
-        }
-    }
-
-    public void showErrorAndClose(int resourceId, String logText) {
-        ProvisionLogger.loge(logText);
-        new ManagedProvisioningErrorDialog(getString(resourceId))
-              .show(getFragmentManager(), "ErrorDialogFragment");
-    }
-
-    /**
-     * @return The User id of an already existing managed profile or -1 if none
-     * exists
-     */
-    int alreadyHasManagedProfile() {
-        UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
-        List<UserInfo> profiles = userManager.getProfiles(getUserId());
-        for (UserInfo userInfo : profiles) {
-            if (userInfo.isManagedProfile()) {
-                return userInfo.getUserHandle().getIdentifier();
-            }
-        }
-        return -1;
-    }
-
-    /**
-     * Builds a dialog that allows the user to remove an existing managed profile after they were
-     * shown an additional warning.
-     */
-    private void showManagedProfileExistsDialog(
-            final int existingManagedProfileUserId) {
-
-        // Before deleting, show a warning dialog
-        DialogInterface.OnClickListener warningListener =
-                new DialogInterface.OnClickListener() {
-            @Override
-            public void onClick(DialogInterface dialog, int which) {
-                // Really delete the profile if the user clicks delete on the warning dialog.
-                final DialogInterface.OnClickListener deleteListener =
-                        new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        UserManager userManager =
-                                (UserManager) getSystemService(Context.USER_SERVICE);
-                        userManager.removeUser(existingManagedProfileUserId);
-                        showStartProvisioningScreen();
-                    }
-                };
-                buildDeleteManagedProfileDialog(
-                        getString(R.string.sure_you_want_to_delete_profile),
-                        deleteListener).show();
-            }
-        };
-
-        buildDeleteManagedProfileDialog(
-                getString(R.string.managed_profile_already_present),
-                warningListener).show();
-    }
-
-    private AlertDialog buildDeleteManagedProfileDialog(String message,
-            DialogInterface.OnClickListener deleteListener) {
-        DialogInterface.OnClickListener cancelListener =
-                new DialogInterface.OnClickListener() {
-            @Override
-            public void onClick(DialogInterface dialog, int which) {
-                ManagedProvisioningActivity.this.finish();
-            }
-        };
-
-        AlertDialog.Builder builder = new AlertDialog.Builder(this);
-        builder.setMessage(message)
-        .setPositiveButton(getString(R.string.delete_profile),
-                deleteListener)
-                .setNegativeButton(getString(R.string.cancel_delete_profile),
-                        cancelListener);
-
-        return builder.create();
-    }
-    /**
-     * Exception thrown when the managed provisioning has failed completely.
-     *
-     * We're using a custom exception to avoid catching subsequent exceptions that might be
-     * significant.
-     */
-    private class ManagedProvisioningFailedException extends Exception {
-      public ManagedProvisioningFailedException(String message) {
-          super(message);
-      }
-    }
-}
-
diff --git a/src/com/android/managedprovisioning/ManagedProvisioningErrorDialog.java b/src/com/android/managedprovisioning/ManagedProvisioningErrorDialog.java
deleted file mode 100644
index ad123bd..0000000
--- a/src/com/android/managedprovisioning/ManagedProvisioningErrorDialog.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 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.
- */
-
-package com.android.managedprovisioning;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.content.DialogInterface;
-import android.os.Bundle;
-
-/**
- * Dialog used to notify the user that the managed provisioning failed, and shutdown the current
- * activity.
- *
- * Note: You should not do any more work in your app after showing this dialog. See guidelines for
- * {@code Activity#finish()} method call.
- */
-public class ManagedProvisioningErrorDialog extends DialogFragment {
-
-  private final String message;
-
-  public ManagedProvisioningErrorDialog(String message) {
-      super();
-      this.message = message;
-  }
-
-  @Override
-  public Dialog onCreateDialog(Bundle savedInstanceState) {
-      // TODO: This disappears when you rotate, fix it when we refactor the app
-
-      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
-      // TODO: Get strings from PM.
-      alertDialogBuilder.setTitle(R.string.provisioning_error_title)
-              .setMessage(message)
-              .setCancelable(false)
-              .setPositiveButton("OK", new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(DialogInterface dialog,int id) {
-                            // Close activity
-                            getActivity().setResult(Activity.RESULT_CANCELED);
-                            getActivity().finish();
-                      }});
-      return alertDialogBuilder.create();
-  }
-}
diff --git a/src/com/android/managedprovisioning/ManagedProvisioningService.java b/src/com/android/managedprovisioning/ManagedProvisioningService.java
deleted file mode 100644
index 6e2b62f..0000000
--- a/src/com/android/managedprovisioning/ManagedProvisioningService.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright 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.
- */
-
-package com.android.managedprovisioning;
-
-import static android.app.admin.DeviceAdminReceiver.ACTION_PROFILE_PROVISIONING_COMPLETE;
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME;
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_EMAIL_ADDRESS;
-import static com.android.managedprovisioning.ManagedProvisioningActivity.EXTRA_LEGACY_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME;
-import static com.android.managedprovisioning.ManagedProvisioningActivity.EXTRA_LEGACY_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
-
-import android.app.ActivityManagerNative;
-import android.app.IActivityManager;
-import android.app.Service;
-import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ActivityInfo;
-import android.content.pm.IPackageManager;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.UserInfo;
-import android.os.IBinder;
-import android.os.Process;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.MediaStore;
-import android.support.v4.content.LocalBroadcastManager;
-import android.text.TextUtils;
-
-import com.android.managedprovisioning.CrossProfileIntentFiltersHelper;
-import com.android.managedprovisioning.task.DeleteNonRequiredAppsTask;
-
-/**
- * Service that runs the managed provisioning.
- *
- * <p>This service is started from and sends updates to the {@link ManagedProvisioningActivity},
- * which contains the provisioning UI.
- */
-public class ManagedProvisioningService extends Service {
-
-    // Intent actions for communication with DeviceOwnerProvisioningService.
-    public static final String ACTION_PROVISIONING_SUCCESS =
-            "com.android.managedprovisioning.provisioning_success";
-    public static final String ACTION_PROVISIONING_ERROR =
-            "com.android.managedprovisioning.error";
-    public static final String EXTRA_LOG_MESSAGE_KEY = "ProvisioingErrorLogMessage";
-
-    private String mMdmPackageName;
-    private ComponentName mActiveAdminComponentName;
-    private String mDefaultManagedProfileName;
-    private String mManagedProfileEmailAddress;
-
-    private IPackageManager mIpm;
-    private UserInfo mManagedProfileUserInfo;
-    private UserManager mUserManager;
-
-    private int mStartIdProvisioning;
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-
-        ProvisionLogger.logd("Managed provisioning service ONCREATE");
-
-        mIpm = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
-        mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
-    }
-
-    @Override
-    public int onStartCommand(final Intent intent, int flags, int startId) {
-        ProvisionLogger.logd("Starting managed provisioning service");
-        mStartIdProvisioning = startId;
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                initialize(intent);
-                startManagedProfileProvisioning();
-            }
-        }).start();
-        return START_NOT_STICKY;
-}
-
-    private void initialize(Intent intent) {
-        mMdmPackageName = getMdmPackageName(intent);
-        mManagedProfileEmailAddress =
-                intent.getStringExtra(EXTRA_PROVISIONING_EMAIL_ADDRESS);
-
-        mActiveAdminComponentName = getAdminReceiverComponent(mMdmPackageName);
-        mDefaultManagedProfileName = getDefaultManagedProfileName(intent);
-    }
-
-    /**
-     * Find the Device admin receiver component from the manifest.
-     */
-    private ComponentName getAdminReceiverComponent(String packageName) {
-        ComponentName adminReceiverComponent = null;
-
-        try {
-            PackageInfo pi = getPackageManager().getPackageInfo(packageName,
-                    PackageManager.GET_RECEIVERS);
-            for (ActivityInfo ai : pi.receivers) {
-                if (!TextUtils.isEmpty(ai.permission) &&
-                        ai.permission.equals(android.Manifest.permission.BIND_DEVICE_ADMIN)) {
-                    adminReceiverComponent = new ComponentName(packageName, ai.name);
-
-                }
-            }
-        } catch (NameNotFoundException e) {
-            error("Error: The provided mobile device management package does not define a device"
-                    + "admin receiver component in its manifest.");
-        }
-        return adminReceiverComponent;
-    }
-
-    private String getDefaultManagedProfileName(Intent intent) {
-        String name = intent.getStringExtra(EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME);
-        if (TextUtils.isEmpty(name)) {
-            name = intent.getStringExtra(EXTRA_LEGACY_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME);
-        }
-        if (TextUtils.isEmpty(name)) {
-            name = getString(R.string.default_managed_profile_name);
-        }
-        return name;
-    }
-
-    private String getMdmPackageName(Intent intent) {
-        String name = intent.getStringExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
-        if (TextUtils.isEmpty(name)) {
-            name = intent.getStringExtra(EXTRA_LEGACY_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
-        }
-        return name;
-    }
-
-    /**
-     * This is the core method of this class. It goes through every provisioning step.
-     */
-    private void startManagedProfileProvisioning() {
-
-        ProvisionLogger.logd("Starting managed profile provisioning");
-
-        // Work through the provisioning steps in their corresponding order
-        createProfile(mDefaultManagedProfileName);
-        DeleteNonRequiredAppsTask deleteTask =
-                new DeleteNonRequiredAppsTask(this,
-                        mMdmPackageName, mManagedProfileUserInfo.id,
-                        R.array.required_apps_managed_profile,
-                        R.array.vendor_required_apps_managed_profile,
-                        new DeleteNonRequiredAppsTask.Callback() {
-
-                            @Override
-                            public void onSuccess() {
-                                setUpProfileAndFinish();
-                            }
-
-                            @Override
-                            public void onError() {
-                                error("Delete non required apps task failed.");
-                            }
-                        });
-        deleteTask.run();
-    }
-
-    /**
-     * Called when the new profile is ready for provisioning (the profile is created and all the
-     * apps not needed have been deleted).
-     */
-    private void setUpProfileAndFinish() {
-            installMdmOnManagedProfile();
-            setMdmAsActiveAdmin();
-            setMdmAsManagedProfileOwner();
-            startManagedProfile();
-            CrossProfileIntentFiltersHelper.setFilters(
-                    getPackageManager(), getUserId(), mManagedProfileUserInfo.id);
-            onProvisioningSuccess(mActiveAdminComponentName);
-    }
-
-    private void createProfile(String profileName) {
-
-        ProvisionLogger.logd("Creating managed profile with name " + profileName);
-
-        mManagedProfileUserInfo = mUserManager.createProfileForUser(profileName,
-                UserInfo.FLAG_MANAGED_PROFILE | UserInfo.FLAG_DISABLED,
-                Process.myUserHandle().getIdentifier());
-
-        if (mManagedProfileUserInfo == null) {
-            if (UserManager.getMaxSupportedUsers() == mUserManager.getUserCount()) {
-                error("Profile creation failed, maximum number of users reached.");
-            } else {
-                error("Couldn't create profile. Reason unknown.");
-            }
-        }
-    }
-
-    /**
-     * Initializes the user that underlies the managed profile.
-     * This is required so that the provisioning complete broadcast can be sent across to the
-     * profile and apps can run on it.
-     */
-    private void startManagedProfile()  {
-        ProvisionLogger.logd("Starting user in background");
-        IActivityManager iActivityManager = ActivityManagerNative.getDefault();
-        try {
-            boolean success = iActivityManager.startUserInBackground(mManagedProfileUserInfo.id);
-            if (!success) {
-               error("Could not start user in background");
-            }
-        } catch (RemoteException neverThrown) {
-            // Never thrown, as we are making local calls.
-            ProvisionLogger.loge("This should not happen.", neverThrown);
-        }
-    }
-
-    private void installMdmOnManagedProfile() {
-
-        ProvisionLogger.logd("Installing mobile device management app " + mMdmPackageName +
-              " on managed profile");
-
-        try {
-            int status = mIpm.installExistingPackageAsUser(
-                mMdmPackageName, mManagedProfileUserInfo.id);
-            switch (status) {
-              case PackageManager.INSTALL_SUCCEEDED:
-                  return;
-              case PackageManager.INSTALL_FAILED_USER_RESTRICTED:
-                  // Should not happen because we're not installing a restricted user
-                  error("Could not install mobile device management app on managed "
-                          + "profile because the user is restricted");
-              case PackageManager.INSTALL_FAILED_INVALID_URI:
-                  // Should not happen because we already checked
-                  error("Could not install mobile device management app on managed "
-                          + "profile because the package could not be found");
-              default:
-                  error("Could not install mobile device management app on managed "
-                          + "profile. Unknown status: " + status);
-            }
-        } catch (RemoteException neverThrown) {
-            // Never thrown, as we are making local calls.
-            ProvisionLogger.loge("This should not happen.", neverThrown);
-        }
-    }
-
-    private void setMdmAsManagedProfileOwner() {
-
-        ProvisionLogger.logd("Setting package " + mMdmPackageName + " as managed profile owner.");
-
-        DevicePolicyManager dpm =
-                (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
-        if (!dpm.setProfileOwner(mActiveAdminComponentName,
-                mDefaultManagedProfileName, mManagedProfileUserInfo.id)) {
-            ProvisionLogger.logw("Could not set profile owner.");
-            error("Could not set profile owner.");
-        }
-    }
-
-    private void setMdmAsActiveAdmin() {
-
-        ProvisionLogger.logd("Setting package " + mMdmPackageName + " as active admin.");
-
-        DevicePolicyManager dpm =
-                (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
-        dpm.setActiveAdmin(mActiveAdminComponentName, true /* refreshing*/,
-                mManagedProfileUserInfo.id);
-    }
-
-    private void sendProvisioningCompleteToManagedProfile(Context context) {
-        UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
-        UserHandle userHandle = userManager.getUserForSerialNumber(
-                mManagedProfileUserInfo.serialNumber);
-
-        Intent completeIntent = new Intent(ACTION_PROFILE_PROVISIONING_COMPLETE);
-        completeIntent.setComponent(mActiveAdminComponentName);
-        completeIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES |
-            Intent.FLAG_RECEIVER_FOREGROUND);
-        if (mManagedProfileEmailAddress != null) {
-            completeIntent.putExtra(EXTRA_PROVISIONING_EMAIL_ADDRESS, mManagedProfileEmailAddress);
-        }
-        context.sendBroadcastAsUser(completeIntent, userHandle);
-
-        ProvisionLogger.logd("Provisioning complete broadcast has been sent to user "
-            + userHandle.getIdentifier());
-      }
-
-
-    /**
-     * Notify the calling activity and the mdm that provisioning has completed.
-     *
-     * @param deviceAdminComponent The component of the mdm that will be notified.
-     */
-    private void onProvisioningSuccess(ComponentName deviceAdminComponent) {
-        Intent successIntent = new Intent(ACTION_PROVISIONING_SUCCESS);
-        LocalBroadcastManager.getInstance(this).sendBroadcast(successIntent);
-
-        sendProvisioningCompleteToManagedProfile(this);
-        stopSelf(mStartIdProvisioning);
-    }
-
-    private void error(String logMessage) {
-        Intent intent = new Intent(ACTION_PROVISIONING_ERROR);
-        intent.setClass(this, ManagedProvisioningActivity.ServiceMessageReceiver.class);
-        intent.putExtra(EXTRA_LOG_MESSAGE_KEY, logMessage);
-        sendBroadcast(intent);
-        cleanup();
-        stopSelf(mStartIdProvisioning);
-    }
-
-    /**
-     * Performs cleanup of the device on failure.
-     */
-    private void cleanup() {
-        // The only cleanup we need to do is remove the profile we created.
-        if (mManagedProfileUserInfo != null) {
-            ProvisionLogger.logd("Removing managed profile");
-            mUserManager.removeUser(mManagedProfileUserInfo.id);
-        }
-    }
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return null;
-    }
-}
diff --git a/src/com/android/managedprovisioning/MessageParser.java b/src/com/android/managedprovisioning/MessageParser.java
index e611bdb..1cb77d7 100644
--- a/src/com/android/managedprovisioning/MessageParser.java
+++ b/src/com/android/managedprovisioning/MessageParser.java
@@ -27,12 +27,13 @@
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PROXY_PORT;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PROXY_BYPASS;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PAC_URL;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER;
 import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM;
-import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_EMAIL_ADDRESS;
-import static android.app.admin.DevicePolicyManager.PROVISIONING_NFC_MIME_TYPE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED;
+import static android.app.admin.DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
 import android.content.Intent;
@@ -41,6 +42,7 @@
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
 import android.os.Parcelable;
+import android.os.PersistableBundle;
 import android.text.TextUtils;
 import android.util.Base64;
 
@@ -53,14 +55,15 @@
 import java.util.Properties;
 
 /**
- * This class can initialize a ProvisioningParams object from an intent.
- * There are two kinds of intents that can be parsed.
+ * This class can initialize a {@link ProvisioningParams} object from an intent.
+ * A {@link ProvisioningParams} object stores various parameters for the device owner provisioning.
+ * There are two kinds of intents that can be parsed it into {@link ProvisioningParams}:
  *
  * <p>
  * Intent was received via Nfc.
  * The intent contains the extra {@link NfcAdapter.EXTRA_NDEF_MESSAGES}, which indicates that
  * provisioning was started via Nfc bump. This extra contains an NDEF message, which contains an
- * NfcRecord with mime type {@link PROVISIONING_NFC_MIME_TYPE}. This record stores a serialized
+ * NfcRecord with mime type {@link MIME_TYPE_PROVISIONING_NFC}. This record stores a serialized
  * properties object, which contains the serialized extra's described in the next option.
  * A typical use case would be a programmer application that sends an Nfc bump to start Nfc
  * provisioning from a programmer device.
@@ -74,6 +77,10 @@
  * together with an optional http cookie header
  * {@link #EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER} accompanied by the SHA-1
  * sum of the target file {@link #EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM}.
+ * Additional information to send through to the device admin may be specified in
+ * {@link #EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE}.
+ * The boolean {@link #EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED} indicates wheter system
+ * apps should not be disabled.
  * Furthermore a wifi network may be specified in {@link #EXTRA_PROVISIONING_WIFI_SSID}, and if
  * applicable {@link #EXTRA_PROVISIONING_WIFI_HIDDEN},
  * {@link #EXTRA_PROVISIONING_WIFI_SECURITY_TYPE}, {@link #EXTRA_PROVISIONING_WIFI_PASSWORD},
@@ -83,10 +90,14 @@
  * and reboot.
  *
  * <p>
- * Furthermore this class can construct the bundle of extras for the second kind of intent, and it
- * keeps track of the types of the extras in the DEVICE_OWNER_x_EXTRAS, with x the appropriate type.
+ * Furthermore this class can construct the bundle of extras for the second kind of intent given a
+ * {@link ProvisioningParams}, and it keeps track of the types of the extras in the
+ * DEVICE_OWNER_x_EXTRAS, with x the appropriate type.
  */
 public class MessageParser {
+    private static final String EXTRA_PROVISIONING_STARTED_BY_NFC  =
+            "com.android.managedprovisioning.extra.started_by_nfc";
+
     protected static final String[] DEVICE_OWNER_STRING_EXTRAS = {
         EXTRA_PROVISIONING_TIME_ZONE,
         EXTRA_PROVISIONING_LOCALE,
@@ -99,8 +110,7 @@
         EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
         EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION,
         EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER,
-        EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM,
-        EXTRA_PROVISIONING_EMAIL_ADDRESS
+        EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM
     };
 
     protected static final String[] DEVICE_OWNER_LONG_EXTRAS = {
@@ -112,7 +122,13 @@
     };
 
     protected static final String[] DEVICE_OWNER_BOOLEAN_EXTRAS = {
-        EXTRA_PROVISIONING_WIFI_HIDDEN
+        EXTRA_PROVISIONING_WIFI_HIDDEN,
+        EXTRA_PROVISIONING_STARTED_BY_NFC,
+        EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED
+    };
+
+    protected static final String[] DEVICE_OWNER_PERSISTABLE_BUNDLE_EXTRAS = {
+        EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
     };
 
     public void addProvisioningParamsToBundle(Bundle bundle, ProvisioningParams params) {
@@ -132,13 +148,17 @@
                 params.mDeviceAdminPackageDownloadCookieHeader);
         bundle.putString(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM,
                 params.getDeviceAdminPackageChecksumAsString());
-        bundle.putString(EXTRA_PROVISIONING_EMAIL_ADDRESS, params.mManagedDeviceEmailAddress);
 
         bundle.putLong(EXTRA_PROVISIONING_LOCAL_TIME, params.mLocalTime);
 
         bundle.putInt(EXTRA_PROVISIONING_WIFI_PROXY_PORT, params.mWifiProxyPort);
 
         bundle.putBoolean(EXTRA_PROVISIONING_WIFI_HIDDEN, params.mWifiHidden);
+        bundle.putBoolean(EXTRA_PROVISIONING_STARTED_BY_NFC, params.mStartedByNfc);
+        bundle.putBoolean(EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED,
+                params.mLeaveAllSystemAppsEnabled);
+
+        bundle.putParcelable(EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE, params.mAdminExtrasBundle);
     }
 
     public ProvisioningParams parseIntent(Intent intent) throws ParseException {
@@ -162,8 +182,11 @@
             NdefRecord firstRecord = msg.getRecords()[0];
             String mimeType = new String(firstRecord.getType(), UTF_8);
 
-            if (PROVISIONING_NFC_MIME_TYPE.equals(mimeType)) {
-                return parseProperties(new String(firstRecord.getPayload(), UTF_8));
+            if (MIME_TYPE_PROVISIONING_NFC.equals(mimeType)) {
+                ProvisioningParams params = parseProperties(new String(firstRecord.getPayload()
+                                , UTF_8));
+                params.mStartedByNfc = true;
+                return params;
             }
         }
         throw new ParseException(
@@ -171,6 +194,9 @@
                 R.string.device_owner_error_general);
     }
 
+    // Note: You can't include the EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE in the properties that is
+    // send over Nfc, because there is no publicly documented conversion from PersistableBundle to
+    // String.
     private ProvisioningParams parseProperties(String data)
             throws ParseException {
         ProvisioningParams params = new ProvisioningParams();
@@ -199,7 +225,6 @@
             if ((s = props.getProperty(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM)) != null) {
                 params.mDeviceAdminPackageChecksum = stringToByteArray(s);
             }
-            params.mManagedDeviceEmailAddress = props.getProperty(EXTRA_PROVISIONING_EMAIL_ADDRESS);
 
             if ((s = props.getProperty(EXTRA_PROVISIONING_LOCAL_TIME)) != null) {
                 params.mLocalTime = Long.parseLong(s);
@@ -213,6 +238,10 @@
                 params.mWifiHidden = Boolean.parseBoolean(s);
             }
 
+            if ((s = props.getProperty(EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED)) != null) {
+                params.mLeaveAllSystemAppsEnabled = Boolean.parseBoolean(s);
+            }
+
             checkValidityOfProvisioningParams(params);
             return params;
         } catch (IOException e) {
@@ -253,8 +282,6 @@
         if (hashString != null) {
             params.mDeviceAdminPackageChecksum = stringToByteArray(hashString);
         }
-        params.mManagedDeviceEmailAddress
-                = intent.getStringExtra(EXTRA_PROVISIONING_EMAIL_ADDRESS);
 
         params.mLocalTime = intent.getLongExtra(EXTRA_PROVISIONING_LOCAL_TIME,
                 ProvisioningParams.DEFAULT_LOCAL_TIME);
@@ -264,6 +291,20 @@
 
         params.mWifiHidden = intent.getBooleanExtra(EXTRA_PROVISIONING_WIFI_HIDDEN,
                 ProvisioningParams.DEFAULT_WIFI_HIDDEN);
+        params.mStartedByNfc = intent.getBooleanExtra(EXTRA_PROVISIONING_STARTED_BY_NFC,
+                false);
+        params.mLeaveAllSystemAppsEnabled = intent.getBooleanExtra(
+                EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED,
+                ProvisioningParams.DEFAULT_LEAVE_ALL_SYSTEM_APPS_ENABLED);
+
+        try {
+            params.mAdminExtrasBundle = (PersistableBundle) intent.getParcelableExtra(
+                    EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
+        } catch (ClassCastException e) {
+            throw new ParseException("Extra " + EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
+                    + " must be of type PersistableBundle.",
+                    R.string.device_owner_error_general, e);
+        }
 
         checkValidityOfProvisioningParams(params);
         return params;
diff --git a/src/com/android/managedprovisioning/PreBootListener.java b/src/com/android/managedprovisioning/PreBootListener.java
new file mode 100644
index 0000000..151ef9a
--- /dev/null
+++ b/src/com/android/managedprovisioning/PreBootListener.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright 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.
+ */
+package com.android.managedprovisioning;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import com.android.managedprovisioning.task.DeleteNonRequiredAppsTask;
+
+import java.util.List;
+
+/**
+ * After a system update, this class resets the cross-profile intent filters and checks
+ * if apps that have been added to the system image need to be deleted.
+ */
+public class PreBootListener extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (context.getUserId() != UserHandle.USER_OWNER) {
+            return;
+        }
+
+        DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
+                Context.DEVICE_POLICY_SERVICE);
+        PackageManager pm = context.getPackageManager();
+
+        // Check for device owner.
+        if (dpm.getDeviceOwner() != null && DeleteNonRequiredAppsTask
+                    .shouldDeleteNonRequiredApps(context, UserHandle.USER_OWNER)) {
+
+            // Delete new apps.
+                deleteNonRequiredApps(context, dpm.getDeviceOwner(), UserHandle.USER_OWNER,
+                        R.array.required_apps_managed_device,
+                        R.array.vendor_required_apps_managed_device,
+                        false /* Do not disable INSTALL_SHORTCUT listeners */);
+        }
+
+        // Check for managed profiles.
+        UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        List<UserInfo> profiles = um.getProfiles(UserHandle.USER_OWNER);
+        if (profiles.size() <= 1) {
+            return;
+        }
+
+        // Removes cross profile intent filters from the parent to all the managed profiles.
+        pm.clearCrossProfileIntentFilters(UserHandle.USER_OWNER);
+
+        // For each managed profile reset cross profile intent filters and delete new apps.
+        for (UserInfo userInfo : profiles) {
+            if (!userInfo.isManagedProfile()) {
+                continue;
+            }
+            pm.clearCrossProfileIntentFilters(userInfo.id);
+            CrossProfileIntentFiltersHelper.setFilters(
+                    pm, UserHandle.USER_OWNER, userInfo.id);
+
+            ComponentName profileOwner = dpm.getProfileOwnerAsUser(userInfo.id);
+            if (profileOwner == null) {
+                // Shouldn't happen.
+                ProvisionLogger.loge("No profile owner on managed profile " + userInfo.id);
+                continue;
+            }
+            deleteNonRequiredApps(context, profileOwner.getPackageName(), userInfo.id,
+                    R.array.required_apps_managed_profile,
+                    R.array.vendor_required_apps_managed_profile,
+                    true /* Disable INSTALL_SHORTCUT listeners */);
+        }
+    }
+
+    private void deleteNonRequiredApps(Context context, String mdmPackageName, int userId,
+            int requiredAppsList, int vendorRequiredAppsList,
+            boolean disableInstallShortcutListeners) {
+        new DeleteNonRequiredAppsTask(context, mdmPackageName, userId,
+                requiredAppsList, vendorRequiredAppsList,
+                false /*we are not creating a new profile*/,
+                disableInstallShortcutListeners,
+                new DeleteNonRequiredAppsTask.Callback() {
+
+                    @Override
+                    public void onSuccess() {
+                    }
+
+                    @Override
+                    public void onError() {
+                        ProvisionLogger.loge("Error while checking if there are new system "
+                                + "apps that need to be deleted");
+                    }
+                }).run();
+    }
+}
diff --git a/src/com/android/managedprovisioning/ProfileOwnerPreProvisioningActivity.java b/src/com/android/managedprovisioning/ProfileOwnerPreProvisioningActivity.java
new file mode 100644
index 0000000..cd3ddb7
--- /dev/null
+++ b/src/com/android/managedprovisioning/ProfileOwnerPreProvisioningActivity.java
@@ -0,0 +1,453 @@
+/*
+ * Copyright 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.
+ */
+
+package com.android.managedprovisioning;
+
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
+import static com.android.managedprovisioning.EncryptDeviceActivity.EXTRA_RESUME;
+import static com.android.managedprovisioning.EncryptDeviceActivity.EXTRA_RESUME_TARGET;
+import static com.android.managedprovisioning.EncryptDeviceActivity.TARGET_PROFILE_OWNER;
+
+import android.app.Activity;
+import android.app.admin.DevicePolicyManager;
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.UserInfo;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.os.Process;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v4.content.LocalBroadcastManager;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Button;
+
+import java.util.List;
+
+/**
+ * The activity sets up the environment in which the {@link ProfileOwnerProvisioningActivity} can be run.
+ * It makes sure the device is encrypted, the current launcher supports managed profiles, the
+ * provisioning intent extras are valid, and that the already present managed profile is removed.
+ */
+public class ProfileOwnerPreProvisioningActivity extends Activity
+        implements UserConsentDialog.ConsentCallback {
+
+    private static final String MANAGE_USERS_PERMISSION = "android.permission.MANAGE_USERS";
+
+    // Note: must match the constant defined in HomeSettings
+    private static final String EXTRA_SUPPORT_MANAGED_PROFILES = "support_managed_profiles";
+
+    // Aliases to start profile owner provisioning with and without MANAGE_USERS permission
+    protected static final ComponentName ALIAS_CHECK_CALLER =
+            new ComponentName("com.android.managedprovisioning",
+                    "com.android.managedprovisioning.ProfileOwnerProvisioningActivity");
+
+    protected static final ComponentName ALIAS_NO_CHECK_CALLER =
+            new ComponentName("com.android.managedprovisioning",
+                    "com.android.managedprovisioning.ProfileOwnerProvisioningActivityNoCallerCheck");
+
+    protected static final int PROVISIONING_REQUEST_CODE = 3;
+    protected static final int ENCRYPT_DEVICE_REQUEST_CODE = 2;
+    protected static final int CHANGE_LAUNCHER_REQUEST_CODE = 1;
+
+    private String mMdmPackageName;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        final LayoutInflater inflater = getLayoutInflater();
+        View contentView = inflater.inflate(R.layout.user_consent, null);
+        setContentView(contentView);
+
+        // Check whether system has the required managed profile feature.
+        if (!systemHasManagedProfileFeature()) {
+            showErrorAndClose(R.string.managed_provisioning_not_supported,
+                    "Exiting managed profile provisioning, "
+                    + "managed profiles feature is not available");
+            return;
+        }
+        if (Process.myUserHandle().getIdentifier() != UserHandle.USER_OWNER) {
+            showErrorAndClose(R.string.user_is_not_owner,
+                    "Exiting managed profile provisioning, calling user is not owner.");
+            return;
+        }
+
+        // Initialize member variables from the intent, stop if the intent wasn't valid.
+        try {
+            initialize(getIntent());
+        } catch (ProvisioningFailedException e) {
+            showErrorAndClose(R.string.managed_provisioning_error_text, e.getMessage());
+            return;
+        }
+
+        setMdmIcon(mMdmPackageName);
+
+        // If the caller started us via ALIAS_NO_CHECK_CALLER then they must have permission to
+        // MANAGE_USERS since it is a restricted intent. Otherwise, check the calling package.
+        boolean hasManageUsersPermission = (getComponentName().equals(ALIAS_NO_CHECK_CALLER));
+        if (!hasManageUsersPermission) {
+            // Calling package has to equal the requested device admin package or has to be system.
+            String callingPackage = getCallingPackage();
+            if (callingPackage == null) {
+                showErrorAndClose(R.string.managed_provisioning_error_text,
+                        "Calling package is null. " +
+                        "Was startActivityForResult used to start this activity?");
+                return;
+            }
+            if (!callingPackage.equals(mMdmPackageName)
+                    && !packageHasManageUsersPermission(callingPackage)) {
+                showErrorAndClose(R.string.managed_provisioning_error_text, "Permission denied, "
+                        + "calling package tried to set a different package as profile owner. "
+                        + "The system MANAGE_USERS permission is required.");
+                return;
+            }
+        }
+
+        DevicePolicyManager dpm =
+                (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
+        String deviceOwner = dpm.getDeviceOwner();
+        if (deviceOwner != null && !deviceOwner.equals(mMdmPackageName)) {
+            showErrorAndClose(R.string.managed_provisioning_error_text, "Permission denied, "
+                    + "profile owner must be in the same package as device owner.");
+            return;
+        }
+
+        // If there is already a managed profile, allow the user to cancel or delete it.
+        int existingManagedProfileUserId = alreadyHasManagedProfile();
+        if (existingManagedProfileUserId != -1) {
+            showManagedProfileExistsDialog(existingManagedProfileUserId);
+        } else {
+            showStartProvisioningScreen();
+        }
+    }
+
+    private void showStartProvisioningScreen() {
+        Button positiveButton = (Button) findViewById(R.id.positive_button);
+        positiveButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                checkEncryptedAndStartProvisioningService();
+            }
+        });
+    }
+
+    private boolean packageHasManageUsersPermission(String pkg) {
+        return PackageManager.PERMISSION_GRANTED == getPackageManager()
+                .checkPermission(MANAGE_USERS_PERMISSION, pkg);
+    }
+
+    private boolean systemHasManagedProfileFeature() {
+        PackageManager pm = getPackageManager();
+        return pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS);
+    }
+
+    private boolean currentLauncherSupportsManagedProfiles() {
+        Intent intent = new Intent(Intent.ACTION_MAIN);
+        intent.addCategory(Intent.CATEGORY_HOME);
+
+        PackageManager pm = getPackageManager();
+        ResolveInfo launcherResolveInfo
+                = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
+        if (launcherResolveInfo == null) {
+            return false;
+        }
+        try {
+            ApplicationInfo launcherAppInfo = getPackageManager().getApplicationInfo(
+                    launcherResolveInfo.activityInfo.packageName, 0 /* default flags */);
+            return versionNumberAtLeastL(launcherAppInfo.targetSdkVersion);
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+    }
+
+    private boolean versionNumberAtLeastL(int versionNumber) {
+        return versionNumber >= Build.VERSION_CODES.LOLLIPOP;
+    }
+
+    private void setMdmIcon(String packageName) {
+        if (packageName != null) {
+            PackageManager pm = getPackageManager();
+            try {
+                ApplicationInfo ai = pm.getApplicationInfo(packageName, /* default flags */ 0);
+                if (ai != null) {
+                    Drawable packageIcon = pm.getApplicationIcon(packageName);
+                    ImageView imageView = (ImageView) findViewById(R.id.mdm_icon_view);
+                    imageView.setImageDrawable(packageIcon);
+
+                    String appLabel = pm.getApplicationLabel(ai).toString();
+                    TextView deviceManagerName = (TextView) findViewById(R.id.device_manager_name);
+                    deviceManagerName.setText(appLabel);
+                }
+            } catch (PackageManager.NameNotFoundException e) {
+                // Package does not exist, ignore. Should never happen.
+                ProvisionLogger.loge("Package does not exist. Should never happen.");
+            }
+        }
+    }
+
+    /**
+     * Checks if all required provisioning parameters are provided.
+     * Does not check for extras that are optional such as wifi ssid.
+     * Also checks whether type of admin extras bundle (if present) is PersistableBundle.
+     *
+     * @param intent The intent that started provisioning
+     */
+    private void initialize(Intent intent) throws ProvisioningFailedException {
+        // Check if the admin extras bundle is of the right type.
+        try {
+            PersistableBundle bundle = (PersistableBundle) getIntent().getParcelableExtra(
+                    EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
+        } catch (ClassCastException e) {
+            throw new ProvisioningFailedException("Extra "
+                    + EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
+                    + " must be of type PersistableBundle.", e);
+        }
+
+        // Validate package name and check if the package is installed
+        mMdmPackageName = intent.getStringExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
+        if (TextUtils.isEmpty(mMdmPackageName)) {
+            throw new ProvisioningFailedException("Missing intent extra: "
+                    + EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
+        } else {
+            try {
+                this.getPackageManager().getPackageInfo(mMdmPackageName, 0);
+            } catch (NameNotFoundException e) {
+                throw new ProvisioningFailedException("Mdm "+ mMdmPackageName
+                        + " is not installed. ", e);
+            }
+        }
+    }
+
+    /**
+     * If the device is encrypted start the service which does the provisioning, otherwise ask for
+     * user consent to encrypt the device.
+     */
+    private void checkEncryptedAndStartProvisioningService() {
+        if (EncryptDeviceActivity.isDeviceEncrypted()
+                || SystemProperties.getBoolean("persist.sys.no_req_encrypt", false)) {
+
+            // Notify the user once more that the admin will have full control over the profile,
+            // then start provisioning.
+            UserConsentDialog.newInstance(UserConsentDialog.PROFILE_OWNER)
+                    .show(getFragmentManager(), "UserConsentDialogFragment");
+        } else {
+            Bundle resumeExtras = getIntent().getExtras();
+            resumeExtras.putString(EXTRA_RESUME_TARGET, TARGET_PROFILE_OWNER);
+            Intent encryptIntent = new Intent(this, EncryptDeviceActivity.class)
+                    .putExtra(EXTRA_RESUME, resumeExtras);
+            startActivityForResult(encryptIntent, ENCRYPT_DEVICE_REQUEST_CODE);
+            // Continue in onActivityResult or after reboot.
+        }
+    }
+
+    @Override
+    public void onDialogConsent() {
+        setupEnvironmentAndProvision();
+    }
+
+    @Override
+    public void onDialogCancel() {
+        // Do nothing.
+    }
+
+    private void setupEnvironmentAndProvision() {
+        // Remove any pre-provisioning UI in favour of progress display
+        BootReminder.cancelProvisioningReminder(this);
+
+        // Check whether the current launcher supports managed profiles.
+        if (!currentLauncherSupportsManagedProfiles()) {
+            showCurrentLauncherInvalid();
+        } else {
+            startProfileOwnerProvisioning();
+        }
+    }
+
+    private void pickLauncher() {
+        Intent changeLauncherIntent = new Intent("android.settings.HOME_SETTINGS");
+        changeLauncherIntent.putExtra(EXTRA_SUPPORT_MANAGED_PROFILES, true);
+        startActivityForResult(changeLauncherIntent, CHANGE_LAUNCHER_REQUEST_CODE);
+        // Continue in onActivityResult.
+    }
+
+    private void startProfileOwnerProvisioning() {
+        Intent intent = new Intent(this, ProfileOwnerProvisioningActivity.class);
+        intent.putExtras(getIntent());
+        startActivityForResult(intent, PROVISIONING_REQUEST_CODE);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == ENCRYPT_DEVICE_REQUEST_CODE) {
+            if (resultCode == RESULT_CANCELED) {
+                ProvisionLogger.loge("User canceled device encryption.");
+                setResult(Activity.RESULT_CANCELED);
+                finish();
+            }
+        } else if (requestCode == CHANGE_LAUNCHER_REQUEST_CODE) {
+            if (resultCode == RESULT_CANCELED) {
+                showCurrentLauncherInvalid();
+            } else if (resultCode == RESULT_OK) {
+                startProfileOwnerProvisioning();
+            }
+        }
+        if (requestCode == PROVISIONING_REQUEST_CODE) {
+            setResult(resultCode);
+            finish();
+        }
+    }
+
+    private void showCurrentLauncherInvalid() {
+        new AlertDialog.Builder(this)
+                .setCancelable(false)
+                .setMessage(R.string.managed_provisioning_not_supported_by_launcher)
+                .setNegativeButton(R.string.cancel_provisioning,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog,int id) {
+                                dialog.dismiss();
+                                setResult(Activity.RESULT_CANCELED);
+                                finish();
+                            }
+                        })
+                .setPositiveButton(R.string.pick_launcher,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog,int id) {
+                                pickLauncher();
+                            }
+                        }).show();
+    }
+
+    public void showErrorAndClose(int resourceId, String logText) {
+        ProvisionLogger.loge(logText);
+        new AlertDialog.Builder(this)
+                .setTitle(R.string.provisioning_error_title)
+                .setMessage(getString(resourceId))
+                .setCancelable(false)
+                .setPositiveButton(R.string.device_owner_error_ok, new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog,int id) {
+                            // Close activity
+                            ProfileOwnerPreProvisioningActivity.this
+                                    .setResult(Activity.RESULT_CANCELED);
+                            ProfileOwnerPreProvisioningActivity.this.finish();
+                        }
+                    }).show();
+    }
+
+    /**
+     * @return The User id of an already existing managed profile or -1 if none
+     * exists
+     */
+    int alreadyHasManagedProfile() {
+        UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
+        List<UserInfo> profiles = userManager.getProfiles(getUserId());
+        for (UserInfo userInfo : profiles) {
+            if (userInfo.isManagedProfile()) {
+                return userInfo.getUserHandle().getIdentifier();
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Builds a dialog that allows the user to remove an existing managed profile after they were
+     * shown an additional warning.
+     */
+    private void showManagedProfileExistsDialog(
+            final int existingManagedProfileUserId) {
+
+        // Before deleting, show a warning dialog
+        DialogInterface.OnClickListener warningListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                // Really delete the profile if the user clicks delete on the warning dialog.
+                final DialogInterface.OnClickListener deleteListener =
+                        new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        UserManager userManager =
+                                (UserManager) getSystemService(Context.USER_SERVICE);
+                        userManager.removeUser(existingManagedProfileUserId);
+                        showStartProvisioningScreen();
+                    }
+                };
+                buildDeleteManagedProfileDialog(
+                        getString(R.string.sure_you_want_to_delete_profile),
+                        deleteListener).show();
+            }
+        };
+
+        buildDeleteManagedProfileDialog(
+                getString(R.string.managed_profile_already_present),
+                warningListener).show();
+    }
+
+    private AlertDialog buildDeleteManagedProfileDialog(String message,
+            DialogInterface.OnClickListener deleteListener) {
+        DialogInterface.OnClickListener cancelListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                ProfileOwnerPreProvisioningActivity.this.finish();
+            }
+        };
+
+        AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        builder.setMessage(message)
+                .setCancelable(false)
+                .setPositiveButton(getString(R.string.delete_profile), deleteListener)
+                .setNegativeButton(getString(R.string.cancel_delete_profile), cancelListener);
+
+        return builder.create();
+    }
+    /**
+     * Exception thrown when the provisioning has failed completely.
+     *
+     * We're using a custom exception to avoid catching subsequent exceptions that might be
+     * significant.
+     */
+    private class ProvisioningFailedException extends Exception {
+        public ProvisioningFailedException(String message) {
+            super(message);
+        }
+
+        public ProvisioningFailedException(String message, Throwable t) {
+            super(message, t);
+        }
+    }
+}
+
diff --git a/src/com/android/managedprovisioning/ProfileOwnerProvisioningActivity.java b/src/com/android/managedprovisioning/ProfileOwnerProvisioningActivity.java
new file mode 100644
index 0000000..a785b09
--- /dev/null
+++ b/src/com/android/managedprovisioning/ProfileOwnerProvisioningActivity.java
@@ -0,0 +1,328 @@
+/*
+ * Copyright 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.
+ */
+
+package com.android.managedprovisioning;
+
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AccountManagerFuture;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.app.Activity;
+import android.app.ActivityManagerNative;
+import android.app.AlertDialog;
+import android.app.IActivityManager;
+import android.app.ProgressDialog;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.support.v4.content.LocalBroadcastManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import java.io.IOException;
+
+/**
+ * Profile owner provisioning sets up a separate profile on a device whose primary user is already
+ * set up.
+ *
+ * <p>
+ * The typical example is setting up a corporate profile that is controlled by their employer on a
+ * users personal device to keep personal and work data separate.
+ *
+ * <p>
+ * The activity handles the UI for managed profile provisioning and starts the
+ * {@link ProfileOwnerProvisioningService}, which runs through the setup steps in an
+ * async task.
+ */
+public class ProfileOwnerProvisioningActivity extends Activity {
+    protected static final String ACTION_CANCEL_PROVISIONING =
+            "com.android.managedprovisioning.CANCEL_PROVISIONING";
+
+    private BroadcastReceiver mServiceMessageReceiver;
+
+    // Provisioning service started
+    private static final int CANCELSTATUS_PROVISIONING = 1;
+    // Back button pressed during provisioning, confirm dialog showing.
+    private static final int CANCELSTATUS_CONFIRMING = 2;
+    // Cancel confirmed, waiting for the provisioning service to complete.
+    private static final int CANCELSTATUS_CANCELLING = 3;
+    // Cancelling not possible anymore, provisioning already finished succesfully.
+    private static final int CANCELSTATUS_FINALIZING = 4;
+
+    private static final String KEY_CANCELSTATUS= "cancelstatus";
+    private static final String KEY_PENDING_INTENT = "pending_intent";
+
+    private int mCancelStatus = CANCELSTATUS_PROVISIONING;
+    private Intent mPendingProvisioningResult = null;
+    private ProgressDialog mCancelProgressDialog = null;
+    private AccountManager mAccountManager;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ProvisionLogger.logd("Profile owner provisioning activity ONCREATE");
+        mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE);
+
+        if (savedInstanceState != null) {
+            mCancelStatus = savedInstanceState.getInt(KEY_CANCELSTATUS, CANCELSTATUS_PROVISIONING);
+            mPendingProvisioningResult = savedInstanceState.getParcelable(KEY_PENDING_INTENT);
+        }
+
+        final LayoutInflater inflater = getLayoutInflater();
+        View contentView = inflater.inflate(R.layout.progress, null);
+        setContentView(contentView);
+        TextView textView = (TextView) findViewById(R.id.prog_text);
+        if (textView != null) textView.setText(getString(R.string.setting_up_workspace));
+
+
+        if (mCancelStatus == CANCELSTATUS_CONFIRMING) {
+            showCancelProvisioningDialog();
+        } else if (mCancelStatus == CANCELSTATUS_CANCELLING) {
+            showCancelProgressDialog();
+        }
+    }
+
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        // Setup broadcast receiver for feedback from service.
+        mServiceMessageReceiver = new ServiceMessageReceiver();
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(ProfileOwnerProvisioningService.ACTION_PROVISIONING_SUCCESS);
+        filter.addAction(ProfileOwnerProvisioningService.ACTION_PROVISIONING_ERROR);
+        filter.addAction(ProfileOwnerProvisioningService.ACTION_PROVISIONING_CANCELLED);
+        LocalBroadcastManager.getInstance(this).registerReceiver(mServiceMessageReceiver, filter);
+
+        // Start service async to make sure the UI is loaded first.
+        final Handler handler = new Handler(getMainLooper());
+        handler.post(new Runnable() {
+                @Override
+                public void run() {
+                    Intent intent = new Intent(ProfileOwnerProvisioningActivity.this,
+                            ProfileOwnerProvisioningService.class);
+                    intent.putExtras(getIntent());
+                    startService(intent);
+                }
+            });
+    }
+
+    class ServiceMessageReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (mCancelStatus == CANCELSTATUS_CONFIRMING) {
+                // Store the incoming intent and only process it after the user has responded to
+                // the cancel dialog
+                mPendingProvisioningResult = intent;
+                return;
+            }
+            handleProvisioningResult(intent);
+        }
+    }
+
+    private void handleProvisioningResult(Intent intent) {
+        String action = intent.getAction();
+        if (ProfileOwnerProvisioningService.ACTION_PROVISIONING_SUCCESS.equals(action)) {
+            if (mCancelStatus == CANCELSTATUS_CANCELLING) {
+                return;
+            }
+
+            ProvisionLogger.logd("Successfully provisioned."
+                    + "Finishing ProfileOwnerProvisioningActivity");
+
+            Intent pendingIntent = (Intent) intent.getParcelableExtra(
+                    ProfileOwnerProvisioningService.EXTRA_PENDING_SUCCESS_INTENT);
+            int serialNumber = intent.getIntExtra(
+                    ProfileOwnerProvisioningService.EXTRA_PROFILE_USER_SERIAL_NUMBER, -1);
+
+            int userId = intent.getIntExtra(ProfileOwnerProvisioningService.EXTRA_PROFILE_USER_ID,
+                    -1);
+            onProvisioningSuccess(pendingIntent, userId, serialNumber);
+        } else if (ProfileOwnerProvisioningService.ACTION_PROVISIONING_ERROR.equals(action)) {
+            if (mCancelStatus == CANCELSTATUS_CANCELLING){
+                return;
+            }
+            String errorLogMessage = intent.getStringExtra(
+                    ProfileOwnerProvisioningService.EXTRA_LOG_MESSAGE_KEY);
+            ProvisionLogger.logd("Error reported: " + errorLogMessage);
+            error(R.string.managed_provisioning_error_text, errorLogMessage);
+        } if (ProfileOwnerProvisioningService.ACTION_PROVISIONING_CANCELLED.equals(action)) {
+            if (mCancelStatus != CANCELSTATUS_CANCELLING) {
+                return;
+            }
+            mCancelProgressDialog.dismiss();
+            ProfileOwnerProvisioningActivity.this.setResult(Activity.RESULT_CANCELED);
+            stopService(new Intent(ProfileOwnerProvisioningActivity.this,
+                            ProfileOwnerProvisioningService.class));
+            ProfileOwnerProvisioningActivity.this.finish();
+        }
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (mCancelStatus == CANCELSTATUS_PROVISIONING) {
+            showCancelProvisioningDialog();
+        }
+    }
+
+    private void showCancelProvisioningDialog() {
+        mCancelStatus = CANCELSTATUS_CONFIRMING;
+        AlertDialog alertDialog = new AlertDialog.Builder(this)
+                        .setCancelable(false)
+                        .setTitle(R.string.profile_owner_cancel_title)
+                        .setMessage(R.string.profile_owner_cancel_message)
+                        .setNegativeButton(R.string.profile_owner_cancel_cancel,
+                                new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog,int id) {
+                                        mCancelStatus = CANCELSTATUS_PROVISIONING;
+                                        if (mPendingProvisioningResult != null) {
+                                            handleProvisioningResult(mPendingProvisioningResult);
+                                        }
+                                    }
+                        })
+                        .setPositiveButton(R.string.profile_owner_cancel_ok,
+                                new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog,int id) {
+                                        confirmCancel();
+                                    }
+                        })
+                        .create();
+        alertDialog.show();
+    }
+
+    protected void showCancelProgressDialog() {
+        mCancelProgressDialog = new ProgressDialog(this);
+        mCancelProgressDialog.setMessage(getText(R.string.profile_owner_cancelling));
+        mCancelProgressDialog.setCancelable(false);
+        mCancelProgressDialog.setCanceledOnTouchOutside(false);
+        mCancelProgressDialog.show();
+    }
+
+    public void error(int resourceId, String logText) {
+        ProvisionLogger.loge(logText);
+        new AlertDialog.Builder(this)
+                .setTitle(R.string.provisioning_error_title)
+                .setMessage(getString(resourceId))
+                .setCancelable(false)
+                .setPositiveButton(R.string.device_owner_error_ok, new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog,int id) {
+                            confirmCancel();
+                        }
+                    }).show();
+    }
+
+    private void confirmCancel() {
+        mCancelStatus = CANCELSTATUS_CANCELLING;
+        Intent intent = new Intent(ProfileOwnerProvisioningActivity.this,
+                ProfileOwnerProvisioningService.class);
+        intent.setAction(ACTION_CANCEL_PROVISIONING);
+        startService(intent);
+        showCancelProgressDialog();
+    }
+
+    /**
+     * Notify the mdm that provisioning has completed. When the mdm has received the intent, stop
+     * the service and notify the {@link ProfileOwnerProvisioningActivity} so that it can finish itself.
+     */
+    private void onProvisioningSuccess(Intent pendingSuccessIntent, int userId, int serialNumber) {
+        mCancelStatus = CANCELSTATUS_FINALIZING;
+        Settings.Secure.putIntForUser(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE,
+                1 /* true- > setup complete */, userId);
+
+        UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
+        UserHandle userHandle = userManager.getUserForSerialNumber(serialNumber);
+
+        // Use an ordered broadcast, so that we only finish when the mdm has received it.
+        // Avoids a lag in the transition between provisioning and the mdm.
+        BroadcastReceiver mdmReceivedSuccessReceiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                ProvisionLogger.logd("ACTION_PROFILE_PROVISIONING_COMPLETE broadcast received by"
+                        + " mdm");
+                ProfileOwnerProvisioningActivity.this.setResult(Activity.RESULT_OK);
+
+                // Now cleanup the primary profile if necessary
+                if (getIntent().hasExtra(EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE)) {
+                    ProvisionLogger.logd("Cleaning up account from the primary user.");
+                    final Account account = (Account) getIntent().getParcelableExtra(
+                            EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE);
+                    new AsyncTask<Void, Void, Void>() {
+                        @Override
+                        protected Void doInBackground(Void... params) {
+                            removeAccount(account);
+                            return null;
+                        }
+                    }.execute();
+                }
+
+                ProfileOwnerProvisioningActivity.this.finish();
+                stopService(new Intent(ProfileOwnerProvisioningActivity.this,
+                                ProfileOwnerProvisioningService.class));
+            }
+        };
+
+        sendOrderedBroadcastAsUser(pendingSuccessIntent, userHandle, null,
+                mdmReceivedSuccessReceiver, null, Activity.RESULT_OK, null, null);
+        ProvisionLogger.logd("Provisioning complete broadcast has been sent to user "
+            + userHandle.getIdentifier());
+    }
+
+    private void removeAccount(Account account) {
+        try {
+            AccountManagerFuture<Bundle> bundle = mAccountManager.removeAccount(account,
+                    this, null /* callback */, null /* handler */);
+            if (bundle.getResult().getBoolean(AccountManager.KEY_BOOLEAN_RESULT, false)) {
+                ProvisionLogger.logw("Account removed from the primary user.");
+            } else {
+                ProvisionLogger.logw("Could not remove account from the primary user.");
+            }
+        } catch (OperationCanceledException | AuthenticatorException | IOException e) {
+            ProvisionLogger.logw("Exception removing account from the primary user.", e);
+        }
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        outState.putInt(KEY_CANCELSTATUS, mCancelStatus);
+        outState.putParcelable(KEY_PENDING_INTENT, mPendingProvisioningResult);
+    }
+
+    @Override
+    public void onPause() {
+        LocalBroadcastManager.getInstance(this).unregisterReceiver(mServiceMessageReceiver);
+        super.onPause();
+    }
+}
+
diff --git a/src/com/android/managedprovisioning/ProfileOwnerProvisioningService.java b/src/com/android/managedprovisioning/ProfileOwnerProvisioningService.java
new file mode 100644
index 0000000..44a6048
--- /dev/null
+++ b/src/com/android/managedprovisioning/ProfileOwnerProvisioningService.java
@@ -0,0 +1,419 @@
+/*
+ * Copyright 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.
+ */
+
+package com.android.managedprovisioning;
+
+import static android.app.admin.DeviceAdminReceiver.ACTION_PROFILE_PROVISIONING_COMPLETE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME;
+import static android.Manifest.permission.BIND_DEVICE_ADMIN;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.app.Activity;
+import android.app.ActivityManagerNative;
+import android.app.IActivityManager;
+import android.app.Service;
+import android.app.admin.DevicePolicyManager;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.IPackageManager;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.UserInfo;
+import android.os.AsyncTask;
+import android.os.IBinder;
+import android.os.Parcelable;
+import android.os.PersistableBundle;
+import android.os.Process;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.MediaStore;
+import android.support.v4.content.LocalBroadcastManager;
+import android.text.TextUtils;
+
+import com.android.managedprovisioning.CrossProfileIntentFiltersHelper;
+import com.android.managedprovisioning.task.DeleteNonRequiredAppsTask;
+
+import java.io.IOException;
+
+/**
+ * Service that runs the profile owner provisioning.
+ *
+ * <p>This service is started from and sends updates to the {@link ProfileOwnerProvisioningActivity},
+ * which contains the provisioning UI.
+ */
+public class ProfileOwnerProvisioningService extends Service {
+    // Extra keys for reporting back success to the activity.
+    public static final String EXTRA_PROFILE_USER_ID =
+            "com.android.managedprovisioning.extra.profile_user_id";
+    public static final String EXTRA_PROFILE_USER_SERIAL_NUMBER =
+            "com.android.managedprovisioning.extra.profile_user_serial_number";
+    public static final String EXTRA_PENDING_SUCCESS_INTENT =
+            "com.android.managedprovisioning.extra.pending_success_intent";
+
+    // Intent actions for communication with DeviceOwnerProvisioningService.
+    public static final String ACTION_PROVISIONING_SUCCESS =
+            "com.android.managedprovisioning.provisioning_success";
+    public static final String ACTION_PROVISIONING_ERROR =
+            "com.android.managedprovisioning.error";
+    public static final String ACTION_PROVISIONING_CANCELLED =
+            "com.android.managedprovisioning.cancelled";
+    public static final String EXTRA_LOG_MESSAGE_KEY = "ProvisioingErrorLogMessage";
+
+    private String mMdmPackageName;
+    private ComponentName mActiveAdminComponentName;
+
+    // PersistableBundle extra received in starting intent.
+    // Should be passed through to device management application when provisioning is complete.
+    private PersistableBundle mAdminExtrasBundle;
+    private Account mAccountToMigrate;
+
+    private IPackageManager mIpm;
+    private UserInfo mManagedProfileUserInfo;
+    private AccountManager mAccountManager;
+    private UserManager mUserManager;
+
+    private int mStartIdProvisioning;
+    private AsyncTask<Intent, Void, Void> runnerTask;
+
+    // MessageId of the last error message.
+    private String mLastErrorMessage = null;
+
+    private boolean mDone = false;
+    private boolean mCancelInFuture = false;
+
+    private class RunnerTask extends AsyncTask<Intent, Void, Void> {
+        @Override
+        protected Void doInBackground(Intent ... intents) {
+            initialize(intents[0]);
+            startManagedProfileProvisioning();
+            return null;
+        }
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+
+        mIpm = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
+        mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE);
+        mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
+
+        runnerTask = new RunnerTask();
+    }
+
+    @Override
+    public int onStartCommand(final Intent intent, int flags, int startId) {
+        if (ProfileOwnerProvisioningActivity.ACTION_CANCEL_PROVISIONING.equals(intent.getAction())) {
+            ProvisionLogger.logd("Cancelling profile owner provisioning service");
+            cancelProvisioning();
+            return START_NOT_STICKY;
+        }
+
+        ProvisionLogger.logd("Starting profile owner provisioning service");
+
+        try {
+            runnerTask.execute(intent);
+        } catch (IllegalStateException e) {
+            // runnerTask is either in progress, or finished.
+            ProvisionLogger.logd(
+                    "ProfileOwnerProvisioningService: Provisioning already started, "
+                    + "second provisioning intent not being processed, only reporting status.");
+            reportStatus();
+        }
+        return START_NOT_STICKY;
+    }
+
+    private void reportStatus() {
+        if (mLastErrorMessage != null) {
+            sendError();
+        }
+        synchronized (this) {
+            if (mDone) {
+                notifyActivityOfSuccess();
+            }
+        }
+    }
+
+    private void cancelProvisioning() {
+        synchronized (this) {
+            if (!mDone) {
+                mCancelInFuture = true;
+                return;
+            }
+            cleanup();
+        }
+    }
+
+    private void initialize(Intent intent) {
+        mMdmPackageName = intent.getStringExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME);
+        mAccountToMigrate = (Account) intent.getParcelableExtra(
+                EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE);
+        if (mAccountToMigrate != null) {
+            ProvisionLogger.logi("Migrating account to managed profile");
+        }
+
+        // Cast is guaranteed by check in Activity.
+        mAdminExtrasBundle  = (PersistableBundle) intent.getParcelableExtra(
+                EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
+
+        mActiveAdminComponentName = getAdminReceiverComponent(mMdmPackageName);
+    }
+
+    /**
+     * Find the Device admin receiver component from the manifest.
+     */
+    private ComponentName getAdminReceiverComponent(String packageName) {
+        ComponentName adminReceiverComponent = null;
+
+        try {
+            PackageInfo pi = getPackageManager().getPackageInfo(packageName,
+                    PackageManager.GET_RECEIVERS);
+            for (ActivityInfo ai : pi.receivers) {
+                if (!TextUtils.isEmpty(ai.permission) &&
+                        ai.permission.equals(BIND_DEVICE_ADMIN)) {
+                    adminReceiverComponent = new ComponentName(packageName, ai.name);
+
+                }
+            }
+        } catch (NameNotFoundException e) {
+            error("Error: The provided mobile device management package does not define a device"
+                    + "admin receiver component in its manifest.");
+        }
+        return adminReceiverComponent;
+    }
+
+    /**
+     * This is the core method of this class. It goes through every provisioning step.
+     */
+    private void startManagedProfileProvisioning() {
+
+        ProvisionLogger.logd("Starting managed profile provisioning");
+
+        // Work through the provisioning steps in their corresponding order
+        createProfile(getString(R.string.default_managed_profile_name));
+        if (mManagedProfileUserInfo != null) {
+            new DeleteNonRequiredAppsTask(this,
+                    mMdmPackageName, mManagedProfileUserInfo.id,
+                    R.array.required_apps_managed_profile,
+                    R.array.vendor_required_apps_managed_profile,
+                    true /* We are creating a new profile */,
+                    true /* Disable INSTALL_SHORTCUT listeners */,
+                    new DeleteNonRequiredAppsTask.Callback() {
+
+                        @Override
+                        public void onSuccess() {
+                            setUpProfileAndFinish();
+                        }
+
+                        @Override
+                        public void onError() {
+                            error("Delete non required apps task failed.");
+                        }
+                    }).run();
+        }
+    }
+
+    /**
+     * Called when the new profile is ready for provisioning (the profile is created and all the
+     * apps not needed have been deleted).
+     */
+    private void setUpProfileAndFinish() {
+        installMdmOnManagedProfile();
+        setMdmAsActiveAdmin();
+        setMdmAsManagedProfileOwner();
+        CrossProfileIntentFiltersHelper.setFilters(
+                getPackageManager(), getUserId(), mManagedProfileUserInfo.id);
+
+        if (!startManagedProfile(mManagedProfileUserInfo.id)) {
+            error("Could not start user in background");
+            return;
+        }
+        copyAccount(mAccountToMigrate);
+        synchronized (this) {
+            mDone = true;
+            if (mCancelInFuture) {
+                cleanup();
+            } else {
+                // Notify activity of success.
+                notifyActivityOfSuccess();
+            }
+        }
+    }
+
+    /**
+     * Initialize the user that underlies the managed profile.
+     * This is required so that the provisioning complete broadcast can be sent across to the
+     * profile and apps can run on it.
+     */
+    private boolean startManagedProfile(int userId)  {
+        ProvisionLogger.logd("Starting user in background");
+        IActivityManager iActivityManager = ActivityManagerNative.getDefault();
+        try {
+            return iActivityManager.startUserInBackground(userId);
+        } catch (RemoteException neverThrown) {
+            // Never thrown, as we are making local calls.
+            ProvisionLogger.loge("This should not happen.", neverThrown);
+        }
+        return false;
+    }
+
+    private void notifyActivityOfSuccess() {
+        // Compose the intent that will be fired by the activity.
+        Intent completeIntent = new Intent(ACTION_PROFILE_PROVISIONING_COMPLETE);
+        completeIntent.setComponent(mActiveAdminComponentName);
+        completeIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES |
+                Intent.FLAG_RECEIVER_FOREGROUND);
+        if (mAdminExtrasBundle != null) {
+            completeIntent.putExtra(EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE,
+                    mAdminExtrasBundle);
+        }
+
+        Intent successIntent = new Intent(ACTION_PROVISIONING_SUCCESS);
+        successIntent.putExtra(EXTRA_PROFILE_USER_ID, mManagedProfileUserInfo.id);
+        successIntent.putExtra(EXTRA_PENDING_SUCCESS_INTENT, completeIntent);
+        successIntent.putExtra(EXTRA_PROFILE_USER_SERIAL_NUMBER,
+                mManagedProfileUserInfo.serialNumber);
+        LocalBroadcastManager.getInstance(ProfileOwnerProvisioningService.this)
+                .sendBroadcast(successIntent);
+    }
+
+    private void copyAccount(Account account) {
+        if (account == null) {
+            ProvisionLogger.logd("No account to migrate to the managed profile.");
+            return;
+        }
+        ProvisionLogger.logd("Attempting to copy account to user " + mManagedProfileUserInfo.id);
+        try {
+            if (mAccountManager.copyAccountToUser(account, mManagedProfileUserInfo.getUserHandle(),
+                    /* callback= */ null, /* handler= */ null).getResult()) {
+                ProvisionLogger.logi("Copied account to user " + mManagedProfileUserInfo.id);
+            } else {
+                ProvisionLogger.loge("Could not copy account to user "
+                        + mManagedProfileUserInfo.id);
+            }
+        } catch (OperationCanceledException | AuthenticatorException | IOException e) {
+            ProvisionLogger.logw("Exception copying account to user " + mManagedProfileUserInfo.id,
+                    e);
+        }
+    }
+
+    private void createProfile(String profileName) {
+
+        ProvisionLogger.logd("Creating managed profile with name " + profileName);
+
+        mManagedProfileUserInfo = mUserManager.createProfileForUser(profileName,
+                UserInfo.FLAG_MANAGED_PROFILE | UserInfo.FLAG_DISABLED,
+                Process.myUserHandle().getIdentifier());
+
+        if (mManagedProfileUserInfo == null) {
+            if (UserManager.getMaxSupportedUsers() == mUserManager.getUserCount()) {
+                error("Profile creation failed, maximum number of users reached.");
+            } else {
+                error("Couldn't create profile. Reason unknown.");
+            }
+        }
+    }
+
+    private void installMdmOnManagedProfile() {
+        ProvisionLogger.logd("Installing mobile device management app " + mMdmPackageName +
+              " on managed profile");
+
+        try {
+            int status = mIpm.installExistingPackageAsUser(
+                mMdmPackageName, mManagedProfileUserInfo.id);
+            switch (status) {
+              case PackageManager.INSTALL_SUCCEEDED:
+                  return;
+              case PackageManager.INSTALL_FAILED_USER_RESTRICTED:
+                  // Should not happen because we're not installing a restricted user
+                  error("Could not install mobile device management app on managed "
+                          + "profile because the user is restricted");
+              case PackageManager.INSTALL_FAILED_INVALID_URI:
+                  // Should not happen because we already checked
+                  error("Could not install mobile device management app on managed "
+                          + "profile because the package could not be found");
+              default:
+                  error("Could not install mobile device management app on managed "
+                          + "profile. Unknown status: " + status);
+            }
+        } catch (RemoteException neverThrown) {
+            // Never thrown, as we are making local calls.
+            ProvisionLogger.loge("This should not happen.", neverThrown);
+        }
+    }
+
+    private void setMdmAsManagedProfileOwner() {
+        ProvisionLogger.logd("Setting package " + mMdmPackageName + " as managed profile owner.");
+
+        DevicePolicyManager dpm =
+                (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
+        if (!dpm.setProfileOwner(mActiveAdminComponentName, mMdmPackageName,
+                mManagedProfileUserInfo.id)) {
+            ProvisionLogger.logw("Could not set profile owner.");
+            error("Could not set profile owner.");
+        }
+    }
+
+    private void setMdmAsActiveAdmin() {
+        ProvisionLogger.logd("Setting package " + mMdmPackageName + " as active admin.");
+
+        DevicePolicyManager dpm =
+                (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
+        dpm.setActiveAdmin(mActiveAdminComponentName, true /* refreshing*/,
+                mManagedProfileUserInfo.id);
+    }
+
+    private void error(String dialogMessage) {
+        mLastErrorMessage = dialogMessage;
+        sendError();
+    }
+
+    private void sendError() {
+        Intent intent = new Intent(ACTION_PROVISIONING_ERROR);
+        intent.putExtra(EXTRA_LOG_MESSAGE_KEY, mLastErrorMessage);
+        LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
+    }
+
+    /**
+     * Performs cleanup of the device on failure.
+     */
+    private void cleanup() {
+        // The only cleanup we need to do is remove the profile we created.
+        if (mManagedProfileUserInfo != null) {
+            ProvisionLogger.logd("Removing managed profile");
+            mUserManager.removeUser(mManagedProfileUserInfo.id);
+        }
+        Intent cancelIntent = new Intent(ACTION_PROVISIONING_CANCELLED);
+        LocalBroadcastManager.getInstance(ProfileOwnerProvisioningService.this)
+                .sendBroadcast(cancelIntent);
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/src/com/android/managedprovisioning/ProvisioningParams.java b/src/com/android/managedprovisioning/ProvisioningParams.java
index 6a56e37..ab919d2 100644
--- a/src/com/android/managedprovisioning/ProvisioningParams.java
+++ b/src/com/android/managedprovisioning/ProvisioningParams.java
@@ -18,6 +18,7 @@
 
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.os.PersistableBundle;
 import android.util.Base64;
 import java.util.Locale;
 
@@ -28,6 +29,7 @@
 public class ProvisioningParams implements Parcelable {
     public static final long DEFAULT_LOCAL_TIME = -1;
     public static final boolean DEFAULT_WIFI_HIDDEN = false;
+    public static final boolean DEFAULT_LEAVE_ALL_SYSTEM_APPS_ENABLED = false;
     public static final int DEFAULT_WIFI_PROXY_PORT = 0;
 
     public String mTimeZone;
@@ -49,7 +51,11 @@
     public String mDeviceAdminPackageDownloadCookieHeader; // Cookie header for http request
     public byte[] mDeviceAdminPackageChecksum = new byte[0]; // SHA-1 sum of the .apk file.
 
-    public String mManagedDeviceEmailAddress;
+    public PersistableBundle mAdminExtrasBundle;
+
+    public boolean mStartedByNfc; // True iff provisioning flow was started by Nfc bump.
+
+    public boolean mLeaveAllSystemAppsEnabled;
 
     public String getLocaleAsString() {
         if (mLocale != null) {
@@ -86,7 +92,9 @@
         out.writeString(mDeviceAdminPackageDownloadCookieHeader);
         out.writeInt(mDeviceAdminPackageChecksum.length);
         out.writeByteArray(mDeviceAdminPackageChecksum);
-        out.writeString(mManagedDeviceEmailAddress);
+        out.writeParcelable(mAdminExtrasBundle, 0 /* default */);
+        out.writeInt(mStartedByNfc ? 1 : 0);
+        out.writeInt(mLeaveAllSystemAppsEnabled ? 1 : 0);
     }
 
     public static final Parcelable.Creator<ProvisioningParams> CREATOR
@@ -98,7 +106,7 @@
             params.mLocalTime = in.readLong();
             params.mLocale = (Locale) in.readSerializable();
             params.mWifiSsid = in.readString();
-            params.mWifiHidden = in.readInt()==1;
+            params.mWifiHidden = in.readInt() == 1;
             params.mWifiSecurityType = in.readString();
             params.mWifiPassword = in.readString();
             params.mWifiProxyHost = in.readString();
@@ -110,7 +118,9 @@
             int checksumLength = in.readInt();
             params.mDeviceAdminPackageChecksum = new byte[checksumLength];
             in.readByteArray(params.mDeviceAdminPackageChecksum);
-            params.mManagedDeviceEmailAddress = in.readString();
+            params.mAdminExtrasBundle = in.readParcelable(null /* use default classloader */);
+            params.mStartedByNfc = in.readInt() == 1;
+            params.mLeaveAllSystemAppsEnabled = in.readInt() == 1;
             return params;
         }
 
diff --git a/src/com/android/managedprovisioning/UserConsentDialog.java b/src/com/android/managedprovisioning/UserConsentDialog.java
new file mode 100644
index 0000000..47b390b
--- /dev/null
+++ b/src/com/android/managedprovisioning/UserConsentDialog.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright 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.
+ */
+
+package com.android.managedprovisioning;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.TextView;
+import android.widget.Button;
+
+/**
+ * Dialog used to notify the user that the admin will have full control over the profile/device.
+ * Custom runnables can be passed that are run on consent or cancel.
+ */
+public class UserConsentDialog extends DialogFragment {
+    public static final int PROFILE_OWNER = 1;
+    public static final int DEVICE_OWNER = 2;
+
+    public static final String LEARN_MORE_URL_PROFILE_OWNER =
+            "https://support.google.com/android/work/answer/6090512";
+    // TODO: replace by the final device owner learn more link.
+    public static final String LEARN_MORE_URL_DEVICE_OWNER =
+            "https://support.google.com/android/work/answer/6090512";
+
+    // Only urls starting with this base can be visisted in the device owner case.
+    public static final String LEARN_MORE_ALLOWED_BASE_URL =
+            "https://support.google.com/";
+
+    private static final String KEY_OWNER_TYPE = "owner_type";
+
+    public static UserConsentDialog newInstance(int ownerType) {
+        UserConsentDialog dialog = new UserConsentDialog();
+        Bundle args = new Bundle();
+        args.putInt(KEY_OWNER_TYPE, ownerType);
+        dialog.setArguments(args);
+        return dialog;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        int ownerType = getArguments().getInt(KEY_OWNER_TYPE);
+        if (ownerType != PROFILE_OWNER && ownerType != DEVICE_OWNER) {
+            throw new IllegalArgumentException("Illegal value for argument ownerType.");
+        }
+
+        final Dialog dialog = new Dialog(getActivity(), R.style.ManagedProvisioningDialogTheme);
+        dialog.setContentView(R.layout.learn_more_dialog);
+        dialog.setCanceledOnTouchOutside(false);
+
+        TextView text1 = (TextView) dialog.findViewById(R.id.learn_more_text1);
+        if (ownerType == PROFILE_OWNER) {
+            text1.setText(R.string.admin_has_ability_to_monitor_profile);
+        } else if (ownerType == DEVICE_OWNER) {
+            text1.setText(R.string.admin_has_ability_to_monitor_device);
+        }
+
+        TextView linkText = (TextView) dialog.findViewById(R.id.learn_more_link);
+        if (ownerType == PROFILE_OWNER) {
+            linkText.setOnClickListener(new OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Intent browserIntent = new Intent(Intent.ACTION_VIEW,
+                                Uri.parse(LEARN_MORE_URL_PROFILE_OWNER));
+                        getActivity().startActivity(browserIntent);
+                    }
+                });
+        } else if (ownerType == DEVICE_OWNER) {
+            linkText.setOnClickListener(new OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Intent webIntent = new Intent(getActivity(), WebActivity.class);
+                        webIntent.putExtra(WebActivity.EXTRA_URL, LEARN_MORE_URL_DEVICE_OWNER);
+                        webIntent.putExtra(WebActivity.EXTRA_ALLOWED_URL_BASE,
+                                LEARN_MORE_ALLOWED_BASE_URL);
+                        getActivity().startActivity(webIntent);
+                    }
+                });
+        }
+
+        Button positiveButton = (Button) dialog.findViewById(R.id.positive_button);
+        positiveButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    dialog.dismiss();
+                    ((ConsentCallback) getActivity()).onDialogConsent();
+                }
+            });
+
+        Button negativeButton = (Button) dialog.findViewById(R.id.negative_button);
+        negativeButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    dialog.dismiss();
+                    ((ConsentCallback) getActivity()).onDialogCancel();
+                }
+            });
+
+        return dialog;
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        ((ConsentCallback) getActivity()).onDialogCancel();
+    }
+
+    public interface ConsentCallback {
+        public abstract void onDialogConsent();
+        public abstract void onDialogCancel();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/managedprovisioning/WebActivity.java b/src/com/android/managedprovisioning/WebActivity.java
new file mode 100644
index 0000000..81779dd
--- /dev/null
+++ b/src/com/android/managedprovisioning/WebActivity.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 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.
+ */
+
+package com.android.managedprovisioning;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+/**
+ * This activity shows a web view, which loads the {@link #EXTRA_URL} indicated in the starting
+ * intent. By default the user can click on links and load other urls. However, if the
+ * {@link EXTRA_ALLOWED_URL_BASE} is set in the starting intent, then only url starting with the
+ * allowed url base will be loaded.
+ *
+ * <p>
+ * This activity is currently used by the {@link UserConsentDialog} to display the google support
+ * web page about the Device Owner concept.
+ * </p>
+ */
+public class WebActivity extends Activity {
+    public static final String EXTRA_URL = "extra_url";
+
+    // Users can only browse urls starting with the base specified by the following extra.
+    // If this extra is not used, there are no restrictions on browsable urls.
+    public static final String EXTRA_ALLOWED_URL_BASE = "extra_allowed_url_base";
+
+    private WebView mWebView;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mWebView = new WebView(this);
+        final String extraUrl = getIntent().getStringExtra(EXTRA_URL);
+        final String extraAllowedUrlBase = getIntent().getStringExtra(EXTRA_ALLOWED_URL_BASE);
+        if (extraUrl == null) {
+            ProvisionLogger.loge("No url provided to WebActivity.");
+            finish();
+            return;
+        }
+        mWebView.loadUrl(extraUrl);
+        mWebView.setWebViewClient(new WebViewClient() {
+                @Override
+                public boolean shouldOverrideUrlLoading(WebView view, String url) {
+                    if (extraAllowedUrlBase != null && url.startsWith(extraAllowedUrlBase)) {
+                        view.loadUrl(url);
+                    }
+                    return true;
+                }
+            });
+
+        this.setContentView(mWebView);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/managedprovisioning/task/AddWifiNetworkTask.java b/src/com/android/managedprovisioning/task/AddWifiNetworkTask.java
index e5aec3b..4d8d89f 100644
--- a/src/com/android/managedprovisioning/task/AddWifiNetworkTask.java
+++ b/src/com/android/managedprovisioning/task/AddWifiNetworkTask.java
@@ -21,6 +21,9 @@
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.net.wifi.WifiManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
 import android.text.TextUtils;
 
 import java.lang.Thread;
@@ -36,6 +39,7 @@
     private static final int RETRY_SLEEP_DURATION_BASE_MS = 500;
     private static final int RETRY_SLEEP_MULTIPLIER = 2;
     private static final int MAX_RETRIES = 6;
+    private static final int RECONNECT_TIMEOUT_MS = 30000;
 
     private final Context mContext;
     private final String mSsid;
@@ -52,14 +56,23 @@
     private NetworkMonitor mNetworkMonitor;
     private WifiConfig mWifiConfig;
 
+    private Handler mHandler;
+    private boolean mTaskDone = false;
+
     private int mDurationNextSleep = RETRY_SLEEP_DURATION_BASE_MS;
     private int mRetriesLeft = MAX_RETRIES;
 
+    /**
+     * @throws IllegalArgumentException if the {@code ssid} parameter is empty.
+     */
     public AddWifiNetworkTask(Context context, String ssid, boolean hidden, String securityType,
             String password, String proxyHost, int proxyPort, String proxyBypassHosts,
             String pacUrl, Callback callback) {
         mCallback = callback;
         mContext = context;
+        if (TextUtils.isEmpty(ssid)) {
+            throw new IllegalArgumentException("The ssid must be non-empty.");
+        }
         mSsid = ssid;
         mHidden = hidden;
         mSecurityType = securityType;
@@ -70,6 +83,12 @@
         mPacUrl = pacUrl;
         mWifiManager  = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
         mWifiConfig = new WifiConfig(mWifiManager);
+
+        HandlerThread thread = new HandlerThread("Timeout thread",
+                android.os.Process.THREAD_PRIORITY_BACKGROUND);
+        thread.start();
+        Looper looper = thread.getLooper();
+        mHandler = new Handler(looper);
     }
 
     public void run() {
@@ -79,20 +98,13 @@
             return;
         }
 
-        mNetworkMonitor = new NetworkMonitor(mContext, this);
-
-        if (!isConnectedToWifi(mContext)) {
-            if (TextUtils.isEmpty(mSsid)) {
-                ProvisionLogger.loge("Wifi is supposed to be setup in activity," +
-                        " or a valid wifi ssid has to be specified.");
-                mCallback.onError();
-                return;
-            }
-
-            connectToProvidedNetwork();
-        } else {
+        if (isConnectedToSpecifiedWifi()) {
             mCallback.onSuccess();
+            return;
         }
+
+        mNetworkMonitor = new NetworkMonitor(mContext, this);
+        connectToProvidedNetwork();
     }
 
     private void connectToProvidedNetwork() {
@@ -118,43 +130,51 @@
                 mCallback.onError();
                 return;
             }
-        } else {
-            if (!mWifiManager.reconnect()) {
-                ProvisionLogger.loge("Unable to connect to wifi");
-                mCallback.onError();
-                return;
-            }
+        }
+
+        // Network was successfully saved, now connect to it.
+        if (!mWifiManager.reconnect()) {
+            ProvisionLogger.loge("Unable to connect to wifi");
+            mCallback.onError();
+            return;
         }
 
         // NetworkMonitor will call onNetworkConnected when in Wifi mode.
+        // Post time out event in case the NetworkMonitor doesn't call back.
+        mHandler.postDelayed(new Runnable() {
+                public void run(){
+                    synchronized(this) {
+                        if (mTaskDone) return;
+                        mTaskDone = true;
+                    }
+                    ProvisionLogger.loge("Setting up wifi connection timed out.");
+                    mCallback.onError();
+                    return;
+                }
+            }, RECONNECT_TIMEOUT_MS);
     }
 
     private boolean enableWifi() {
-        if (mWifiManager != null) {
-            int wifiState = mWifiManager.getWifiState();
-            boolean wifiOn = wifiState == WifiManager.WIFI_STATE_ENABLED;
-            if (!wifiOn) {
-                if (!mWifiManager.setWifiEnabled(true)) {
-                    return false;
-                } else {
-                    return true;
-                }
-            } else {
-                return true;
-            }
-        } else {
-            return false;
-        }
+        return mWifiManager != null
+                && (mWifiManager.isWifiEnabled() || mWifiManager.setWifiEnabled(true));
     }
 
     @Override
     public void onNetworkConnected() {
-        if (NetworkMonitor.isConnectedToWifi(mContext) &&
-                mWifiManager.getConnectionInfo().getSSID().equals(mSsid)) {
+        if (isConnectedToSpecifiedWifi()) {
+            synchronized(this) {
+                if (mTaskDone) return;
+                mTaskDone = true;
+            }
+
             ProvisionLogger.logd("Connected to the correct network");
-            mNetworkMonitor.close();
-            mNetworkMonitor = null;
+
+            // Remove time out callback.
+            mHandler.removeCallbacksAndMessages(null);
+
+            cleanUp();
             mCallback.onSuccess();
+            return;
         }
     }
 
@@ -170,6 +190,12 @@
         }
     }
 
+    private boolean isConnectedToSpecifiedWifi() {
+        return NetworkMonitor.isConnectedToWifi(mContext)
+                && mWifiManager.getConnectionInfo() != null
+                && mSsid.equals(mWifiManager.getConnectionInfo().getSSID());
+    }
+
     public static boolean isConnectedToWifi(Context context) {
         ConnectivityManager cm =
                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
diff --git a/src/com/android/managedprovisioning/task/DeleteNonRequiredAppsTask.java b/src/com/android/managedprovisioning/task/DeleteNonRequiredAppsTask.java
index 0f77a8a..924ff25 100644
--- a/src/com/android/managedprovisioning/task/DeleteNonRequiredAppsTask.java
+++ b/src/com/android/managedprovisioning/task/DeleteNonRequiredAppsTask.java
@@ -16,30 +16,47 @@
 
 package com.android.managedprovisioning.task;
 
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.ComponentInfo;
 import android.content.pm.IPackageDeleteObserver;
 import android.content.pm.IPackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.util.Xml;
 
+import com.android.internal.util.FastXmlSerializer;
 import com.android.managedprovisioning.ProvisionLogger;
 import com.android.managedprovisioning.R;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
+
 /**
- * Removes all apps with a launcher that are not required.
- * There are two decendants of this class:
- * {@link DeleteNonRequiredAppsTask} for profile owner provisioning,
- * and {@link DeleteNonRequiredAppsTask} for device owner provisioning.
- * The decendents specify which apps are required.
+ * Removes all system apps with a launcher that are not required.
+ * Also disables sharing via Bluetooth, and components that listen to
+ * ACTION_INSTALL_SHORTCUT.
+ * This class is called a first time when a user is created, but also after a system update.
+ * In this case, it checks if the system apps that have been added need to be disabled.
  */
 public class DeleteNonRequiredAppsTask {
     private final Callback mCallback;
@@ -50,9 +67,16 @@
     private final int mReqAppsList;
     private final int mVendorReqAppsList;
     private final int mUserId;
+    private final boolean mNewProfile; // If we are provisioning a new managed profile/device.
+    private final boolean mDisableInstallShortcutListenersAndTelecom;
+
+    private static final String TAG_SYSTEM_APPS = "system-apps";
+    private static final String TAG_PACKAGE_LIST_ITEM = "item";
+    private static final String ATTR_VALUE = "value";
 
     public DeleteNonRequiredAppsTask(Context context, String mdmPackageName, int userId,
-            int requiredAppsList, int vendorRequiredAppsList, Callback callback) {
+            int requiredAppsList, int vendorRequiredAppsList, boolean newProfile,
+            boolean disableInstallShortcutListenersAndTelecom, Callback callback) {
         mCallback = callback;
         mContext = context;
         mMdmPackageName = mdmPackageName;
@@ -61,39 +85,226 @@
         mPm = context.getPackageManager();
         mReqAppsList = requiredAppsList;
         mVendorReqAppsList = vendorRequiredAppsList;
+        mNewProfile = newProfile;
+        mDisableInstallShortcutListenersAndTelecom = disableInstallShortcutListenersAndTelecom;
     }
 
     public void run() {
+        if (mNewProfile) {
+            disableBluetoothSharing();
+        }
+        deleteNonRequiredApps();
+    }
+
+    /**
+     * Returns if this task should be run on OTA.
+     * This is indicated by the presence of the system apps file.
+     */
+    public static boolean shouldDeleteNonRequiredApps(Context context, int userId) {
+        return getSystemAppsFile(context, userId).exists();
+    }
+
+    private void disableBluetoothSharing() {
+        ProvisionLogger.logd("Disabling Bluetooth sharing.");
+        disableComponent(new ComponentName("com.android.bluetooth",
+                "com.android.bluetooth.opp.BluetoothOppLauncherActivity"));
+    }
+
+    private void deleteNonRequiredApps() {
         ProvisionLogger.logd("Deleting non required apps.");
 
-        Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
-        launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
-        List<ResolveInfo> launcherActivities = mPm.queryIntentActivitiesAsUser(
-                launcherIntent, PackageManager.NO_CROSS_PROFILE, mUserId);
+        File systemAppsFile = getSystemAppsFile(mContext, mUserId);
+        systemAppsFile.getParentFile().mkdirs(); // Creating the folder if it does not exist
 
-        Set<String> requiredApps = getRequiredApps();
+        Set<String> currentApps = getCurrentSystemApps();
+        Set<String> previousApps;
+        if (mNewProfile) {
+            // Provisioning case.
 
-        Set<String> packagesToDelete = new HashSet<String>();
-        for (ResolveInfo activity : launcherActivities) {
-            String packageName = activity.activityInfo.packageName;
-            if (!requiredApps.contains(packageName)) {
-                packagesToDelete.add(packageName);
+            // If this userId was a managed profile before, file may exist. In this case, we ignore
+            // what is in this file.
+            previousApps = new HashSet<String>();
+        } else {
+            // OTA case.
+
+            if (!systemAppsFile.exists()) {
+                // Error, this task should not have been run.
+                ProvisionLogger.loge("No system apps list found for user " + mUserId);
+                mCallback.onError();
+                return;
+            }
+
+            previousApps = readSystemApps(systemAppsFile);
+        }
+        writeSystemApps(currentApps, systemAppsFile);
+        Set<String> newApps = currentApps;
+        newApps.removeAll(previousApps);
+
+        if (mDisableInstallShortcutListenersAndTelecom) {
+            Intent actionShortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
+            if (previousApps.isEmpty()) {
+                // Here, all the apps are in newApps.
+                // It is faster to do it this way than to go through all the apps one by one.
+                disableReceivers(actionShortcut);
+            } else {
+                // Here, all the apps are not in newApps. So we have to go through all the new
+                // apps one by one.
+                for (String newApp : newApps) {
+                    actionShortcut.setPackage(newApp);
+                    disableReceivers(actionShortcut);
+                }
             }
         }
-
+        Set<String> packagesToDelete = newApps;
+        packagesToDelete.removeAll(getRequiredApps());
+        packagesToDelete.retainAll(getCurrentAppsWithLauncher());
+        // com.android.server.telecom should not handle CALL intents in the managed profile.
+        if (mDisableInstallShortcutListenersAndTelecom && mNewProfile) {
+            packagesToDelete.add("com.android.server.telecom");
+        }
+        if (packagesToDelete.isEmpty()) {
+            mCallback.onSuccess();
+            return;
+        }
         PackageDeleteObserver packageDeleteObserver =
-                    new PackageDeleteObserver(packagesToDelete.size());
+                new PackageDeleteObserver(packagesToDelete.size());
         for (String packageName : packagesToDelete) {
             try {
                 mIpm.deletePackageAsUser(packageName, packageDeleteObserver, mUserId,
                         PackageManager.DELETE_SYSTEM_APP);
             } catch (RemoteException neverThrown) {
-                // Never thrown, as we are making local calls.
+                    // Never thrown, as we are making local calls.
                 ProvisionLogger.loge("This should not happen.", neverThrown);
             }
         }
     }
 
+    static File getSystemAppsFile(Context context, int userId) {
+        return new File(context.getFilesDir() + File.separator + "system_apps"
+                + File.separator + "user" + userId + ".xml");
+    }
+
+    /**
+     * Disable all components that can handle the specified broadcast intent.
+     */
+    private void disableReceivers(Intent intent) {
+        List<ResolveInfo> receivers = mPm.queryBroadcastReceivers(intent, 0, mUserId);
+        for (ResolveInfo ri : receivers) {
+            // One of ri.activityInfo, ri.serviceInfo, ri.providerInfo is not null. Let's find which
+            // one.
+            ComponentInfo ci;
+            if (ri.activityInfo != null) {
+                ci = ri.activityInfo;
+            } else if (ri.serviceInfo != null) {
+                ci = ri.serviceInfo;
+            } else {
+                ci = ri.providerInfo;
+            }
+            disableComponent(new ComponentName(ci.packageName, ci.name));
+        }
+    }
+
+    private void disableComponent(ComponentName toDisable) {
+        try {
+            mIpm.setComponentEnabledSetting(toDisable,
+                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP,
+                    mUserId);
+        } catch (RemoteException neverThrown) {
+            ProvisionLogger.loge("This should not happen.", neverThrown);
+        } catch (Exception e) {
+            ProvisionLogger.logw("Component not found, not disabling it: "
+                + toDisable.toShortString());
+        }
+    }
+
+    /**
+     * Returns the set of package names of apps that are in the system image,
+     * whether they have been deleted or not.
+     */
+    private Set<String> getCurrentSystemApps() {
+        Set<String> apps = new HashSet<String>();
+        List<ApplicationInfo> aInfos = null;
+        try {
+            aInfos = mIpm.getInstalledApplications(
+                    PackageManager.GET_UNINSTALLED_PACKAGES, mUserId).getList();
+        } catch (RemoteException neverThrown) {
+            // Never thrown, as we are making local calls.
+            ProvisionLogger.loge("This should not happen.", neverThrown);
+        }
+        for (ApplicationInfo aInfo : aInfos) {
+            if ((aInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
+                apps.add(aInfo.packageName);
+            }
+        }
+        return apps;
+    }
+
+    private Set<String> getCurrentAppsWithLauncher() {
+        Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
+        launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+        List<ResolveInfo> resolveInfos = mPm.queryIntentActivitiesAsUser(launcherIntent,
+                PackageManager.GET_UNINSTALLED_PACKAGES, mUserId);
+        Set<String> apps = new HashSet<String>();
+        for (ResolveInfo resolveInfo : resolveInfos) {
+            apps.add(resolveInfo.activityInfo.packageName);
+        }
+        return apps;
+    }
+
+    private void writeSystemApps(Set<String> packageNames, File systemAppsFile) {
+        try {
+            FileOutputStream stream = new FileOutputStream(systemAppsFile, false);
+            XmlSerializer serializer = new FastXmlSerializer();
+            serializer.setOutput(stream, "utf-8");
+            serializer.startDocument(null, true);
+            serializer.startTag(null, TAG_SYSTEM_APPS);
+            for (String packageName : packageNames) {
+                serializer.startTag(null, TAG_PACKAGE_LIST_ITEM);
+                serializer.attribute(null, ATTR_VALUE, packageName);
+                serializer.endTag(null, TAG_PACKAGE_LIST_ITEM);
+            }
+            serializer.endTag(null, TAG_SYSTEM_APPS);
+            serializer.endDocument();
+            stream.close();
+        } catch (IOException e) {
+            ProvisionLogger.loge("IOException trying to write the system apps", e);
+        }
+    }
+
+    private Set<String> readSystemApps(File systemAppsFile) {
+        Set<String> result = new HashSet<String>();
+        if (!systemAppsFile.exists()) {
+            return result;
+        }
+        try {
+            FileInputStream stream = new FileInputStream(systemAppsFile);
+
+            XmlPullParser parser = Xml.newPullParser();
+            parser.setInput(stream, null);
+
+            int type = parser.next();
+            int outerDepth = parser.getDepth();
+            while ((type=parser.next()) != XmlPullParser.END_DOCUMENT
+                   && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+                if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                    continue;
+                }
+                String tag = parser.getName();
+                if (tag.equals(TAG_PACKAGE_LIST_ITEM)) {
+                    result.add(parser.getAttributeValue(null, ATTR_VALUE));
+                } else {
+                    ProvisionLogger.loge("Unknown tag: " + tag);
+                }
+            }
+            stream.close();
+        } catch (IOException e) {
+            ProvisionLogger.loge("IOException trying to read the system apps", e);
+        } catch (XmlPullParserException e) {
+            ProvisionLogger.loge("XmlPullParserException trying to read the system apps", e);
+        }
+        return result;
+    }
+
     protected Set<String> getRequiredApps() {
         HashSet<String> requiredApps = new HashSet<String> (Arrays.asList(
                         mContext.getResources().getStringArray(mReqAppsList)));
@@ -118,7 +329,7 @@
         public void packageDeleted(String packageName, int returnCode) {
             if (returnCode != PackageManager.DELETE_SUCCEEDED) {
                 ProvisionLogger.logw(
-                        "Could not finish managed profile provisioning: package deletion failed");
+                        "Could not finish the provisioning: package deletion failed");
                 mCallback.onError();
             }
             int currentPackageCount = mPackageCount.decrementAndGet();
diff --git a/src/com/android/managedprovisioning/task/InstallPackageTask.java b/src/com/android/managedprovisioning/task/InstallPackageTask.java
index 0ac0f01..ed4ec0e 100644
--- a/src/com/android/managedprovisioning/task/InstallPackageTask.java
+++ b/src/com/android/managedprovisioning/task/InstallPackageTask.java
@@ -115,20 +115,25 @@
     private class PackageInstallObserver extends IPackageInstallObserver.Stub {
         @Override
         public void packageInstalled(String packageName, int returnCode) {
-            if (!packageName.equals(mPackageName)) {
-                return;
-            }
-
             // Set package verification flag to its original value.
             Global.putInt(mContext.getContentResolver(), Global.PACKAGE_VERIFIER_ENABLE,
                     mPackageVerifierEnable);
 
-            if (returnCode == PackageManager.INSTALL_SUCCEEDED) {
-                ProvisionLogger.logd("Package " + packageName + " is succesfully installed.");
+            if (returnCode == PackageManager.INSTALL_SUCCEEDED
+                    && mPackageName.equals(packageName)) {
+                ProvisionLogger.logd("Package " + mPackageName + " is succesfully installed.");
 
                 mCallback.onSuccess();
             } else {
-                ProvisionLogger.logd("Installing package " + packageName + " failed.");
+                if (returnCode == PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE) {
+                    ProvisionLogger.logd("Current version of " + mPackageName
+                            + " higher than the version to be installed.");
+                    ProvisionLogger.logd("Package " + mPackageName + " was not reinstalled.");
+                    mCallback.onSuccess();
+                    return;
+                }
+
+                ProvisionLogger.logd("Installing package " + mPackageName + " failed.");
                 ProvisionLogger.logd("Errorcode returned by IPackageInstallObserver = "
                         + returnCode);
                 mCallback.onError(ERROR_INSTALLATION_FAILED);
