diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f199673..cff847e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2419,6 +2419,19 @@
                 android:resource="@id/notification_settings" />
         </activity>
 
+        <!-- Show Manual (from settings item) -->
+        <activity android:name="ManualDisplayActivity"
+                  android:label="@string/manual"
+                  android:taskAffinity=""
+                  android:enabled="@bool/config_show_manual">
+            <intent-filter>
+                <action android:name="android.settings.SHOW_MANUAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
         <!-- Show regulatory info (from settings item or dialing "*#07#") -->
         <activity android:name="RegulatoryInfoDisplayActivity"
                   android:label="@string/regulatory_information"
diff --git a/res/values/bools.xml b/res/values/bools.xml
index 0fdc396..85b4ffb 100644
--- a/res/values/bools.xml
+++ b/res/values/bools.xml
@@ -30,6 +30,8 @@
          Can be overridden for specific product builds. -->
     <bool name="auto_confirm_bluetooth_activation_dialog">false</bool>
 
+    <!-- Whether to show a preference item for the manual in About phone -->
+    <bool name="config_show_manual">false</bool>
     <!-- Whether to show a preference item for regulatory information in About phone -->
     <bool name="config_show_regulatory_info">false</bool>
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 75bddc8..1e3f44c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2867,6 +2867,8 @@
     <string name="legal_information">Legal information</string>
     <!-- About phone settings screen, setting option name to see a list of contributors -->
     <string name="contributors_title">Contributors</string>
+    <!-- About phone settings screen, setting option name to show Manual [CHAR LIMIT=25] -->
+    <string name="manual">Manual</string>
     <!-- About phone settings screen, setting option name to show regulatory information [CHAR LIMIT=25] -->
     <string name="regulatory_information">Regulatory information</string>
     <!-- Note: this may be replaced by a more-specific title of the activity that will get launched --> <skip />
@@ -2886,6 +2888,11 @@
     <!-- About phone settings screen, setting option name to see wallpapers attributions values -->
     <string name="wallpaper_attributions_values">Satellite imagery providers:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky</string>
 
+    <!-- Phone Manual -->
+    <string name="settings_manual_activity_title">Manual</string>
+    <!-- About phone settings screen, Manual dialog message when manual cannot be loaded -->
+    <string name="settings_manual_activity_unavailable">There is a problem loading the manual.</string>
+
     <!-- Title for actual Settings license activity. --> <skip />
     <!-- About phone settings, Legal information setting option name and title of dialog box holding license info -->
     <string name="settings_license_activity_title">Open source licenses</string>
diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
index 358f3e1..1372ce7 100644
--- a/res/xml/device_info_settings.xml
+++ b/res/xml/device_info_settings.xml
@@ -41,6 +41,13 @@
                     android:targetClass="com.android.settings.deviceinfo.Status" />
         </PreferenceScreen>
 
+        <!-- Manual -->
+        <PreferenceScreen
+                android:key="manual"
+                android:title="@string/manual">
+            <intent android:action="android.settings.SHOW_MANUAL" />
+        </PreferenceScreen>
+
         <!-- Legal Information -->
         <PreferenceScreen
                 android:key="container"
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index 9ead7c6..9ad911d 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -59,6 +59,7 @@
     private static final String FILENAME_PROC_VERSION = "/proc/version";
     private static final String FILENAME_MSV = "/sys/board_properties/soc/msv";
 
+    private static final String KEY_MANUAL = "manual";
     private static final String KEY_REGULATORY_INFO = "regulatory_info";
     private static final String KEY_SYSTEM_UPDATE_SETTINGS = "system_update_settings";
     private static final String PROPERTY_URL_SAFETYLEGAL = "ro.url.safetylegal";
@@ -166,6 +167,9 @@
         removePreferenceIfBoolFalse(KEY_UPDATE_SETTING,
                 R.bool.config_additional_system_update_setting_enable);
 
+        // Remove manual entry if none present.
+        removePreferenceIfBoolFalse(KEY_MANUAL, R.bool.config_show_manual);
+
         // Remove regulatory information if none present.
         final Intent intent = new Intent(Settings.ACTION_SHOW_REGULATORY_INFO);
         if (getPackageManager().queryIntentActivities(intent, 0).isEmpty()) {
diff --git a/src/com/android/settings/ManualDisplayActivity.java b/src/com/android/settings/ManualDisplayActivity.java
new file mode 100644
index 0000000..8be4fee
--- /dev/null
+++ b/src/com/android/settings/ManualDisplayActivity.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2015 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.settings;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+import java.io.File;
+
+/**
+ * The "dialog" that shows from "Manual" in the Settings app.
+ */
+public class ManualDisplayActivity extends Activity {
+    private static final String TAG = "SettingsManualActivity";
+
+    private static final String DEFAULT_MANUAL_PATH = "/system/etc/MANUAL.html.gz";
+    private static final String PROPERTY_MANUAL_PATH = "ro.config.manual_path";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Resources resources = getResources();
+
+        if (!resources.getBoolean(R.bool.config_show_manual)) {
+            finish();   // No manual to display for this device
+        }
+
+        final String path = SystemProperties.get(PROPERTY_MANUAL_PATH, DEFAULT_MANUAL_PATH);
+        if (TextUtils.isEmpty(path)) {
+            Log.e(TAG, "The system property for the manual is empty");
+            showErrorAndFinish();
+            return;
+        }
+
+        final File file = new File(path);
+        if (!file.exists() || file.length() == 0) {
+            Log.e(TAG, "Manual file " + path + " does not exist");
+            showErrorAndFinish();
+            return;
+        }
+
+        final Intent intent = new Intent(Intent.ACTION_VIEW);
+        intent.setDataAndType(Uri.fromFile(file), "text/html");
+
+        intent.putExtra(Intent.EXTRA_TITLE, getString(R.string.settings_manual_activity_title));
+        intent.addCategory(Intent.CATEGORY_DEFAULT);
+        intent.setPackage("com.android.htmlviewer");
+
+        try {
+            startActivity(intent);
+            finish();
+        } catch (ActivityNotFoundException e) {
+            Log.e(TAG, "Failed to find viewer", e);
+            showErrorAndFinish();
+        }
+    }
+
+    private void showErrorAndFinish() {
+        Toast.makeText(this, R.string.settings_manual_activity_unavailable, Toast.LENGTH_LONG)
+                .show();
+        finish();
+    }
+}
