Version 5.1.1
diff --git a/VERSION b/VERSION
index 28cbf7c..3bff059 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5.0.0
\ No newline at end of file
+5.1.1
\ No newline at end of file
diff --git a/docs/en/5.1.1/config.json b/docs/en/5.1.1/config.json
new file mode 100644
index 0000000..99f6553
--- /dev/null
+++ b/docs/en/5.1.1/config.json
@@ -0,0 +1,18 @@
+{
+    "language": "English",
+    "merge": {
+        "events.md": [
+            "cordova/events/events.md",
+            "cordova/events/events.deviceready.md",
+            "cordova/events/events.pause.md",
+            "cordova/events/events.resume.md",
+            "cordova/events/events.backbutton.md",
+            "cordova/events/events.menubutton.md",
+            "cordova/events/events.searchbutton.md",
+            "cordova/events/events.startcallbutton.md",
+            "cordova/events/events.endcallbutton.md",
+            "cordova/events/events.volumedownbutton.md",
+            "cordova/events/events.volumeupbutton.md"
+        ]
+    }
+}
diff --git a/docs/en/5.1.1/config_ref/images.md b/docs/en/5.1.1/config_ref/images.md
new file mode 100644
index 0000000..86a9e47
--- /dev/null
+++ b/docs/en/5.1.1/config_ref/images.md
@@ -0,0 +1,209 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Icons and Splash Screens
+
+This section shows how to configure an app's icon and optional splash
+screen for various platforms, both when working in the Cordova CLI
+(described in The Command-Line Interface) or using platform-specific
+SDK tools (detailed in the Platform Guides).
+
+## Configuring Icons in the CLI
+
+When working in the CLI you can define app icon(s) via `<icon>` element (`config.xml`).
+If you do not specify an icon then the Apache Cordova logo is used.
+
+        <icon src="res/ios/icon.png" platform="ios" width="57" height="57" density="mdpi" />
+
+src: (required) specifies the location of the image file, relative to your project directory
+
+platform: (optional) target platform
+
+width: (optional) icon width in pixels
+
+height: (optional) icon height in pixels 
+
+density: (optional) android specific, specifies icon density
+
+The following configuration can be used to define single default icon
+which will be used for all platforms.
+
+        <icon src="res/icon.png" />
+
+For each platform you can also define a pixel-perfect icons set to fit 
+different screen resolutions.
+
+Amazon Fire OS
+
+         <platform name="amazon-fireos">
+                  <icon src="res/android/ldpi.png" density="ldpi" />
+                  <icon src="res/android/mdpi.png" density="mdpi" />
+                  <icon src="res/android/hdpi.png" density="hdpi" />
+                  <icon src="res/android/xhdpi.png" density="xhdpi" />
+         </platform>
+
+Android
+
+         <platform name="android">
+                  <icon src="res/android/ldpi.png" density="ldpi" />
+                  <icon src="res/android/mdpi.png" density="mdpi" />
+                  <icon src="res/android/hdpi.png" density="hdpi" />
+                  <icon src="res/android/xhdpi.png" density="xhdpi" />
+         </platform>
+
+BlackBerry10
+
+         <platform name="blackberry10">
+                  <icon src="res/bb10/icon-86.png" />
+                  <icon src="res/bb10/icon-150.png" />
+         </platform>
+
+See BlackBerry's documentation for targeting multiple sizes and locales.
+[http://developer.blackberry.com/html5/documentation/icon_element.html]
+
+Firefox OS
+
+         <platform name="firefoxos">
+                  <icon src="res/ff/logo.png" width="60" height="60" />
+         </platform>
+
+iOS
+
+         <platform name="ios">
+                  <!-- iOS 8.0+ -->
+                  <!-- iPhone 6 Plus  -->
+                  <icon src="res/ios/icon-60@3x.png" width="180" height="180" />
+                  <!-- iOS 7.0+ -->
+                  <!-- iPhone / iPod Touch  -->
+                  <icon src="res/ios/icon-60.png" width="60" height="60" />
+                  <icon src="res/ios/icon-60@2x.png" width="120" height="120" />
+                  <!-- iPad -->
+                  <icon src="res/ios/icon-76.png" width="76" height="76" />
+                  <icon src="res/ios/icon-76@2x.png" width="152" height="152" />
+                  <!-- iOS 6.1 -->
+                  <!-- Spotlight Icon -->
+                  <icon src="res/ios/icon-40.png" width="40" height="40" />
+                  <icon src="res/ios/icon-40@2x.png" width="80" height="80" />
+                  <!-- iPhone / iPod Touch -->
+                  <icon src="res/ios/icon.png" width="57" height="57" />
+                  <icon src="res/ios/icon@2x.png" width="114" height="114" />
+                  <!-- iPad -->
+                  <icon src="res/ios/icon-72.png" width="72" height="72" />
+                  <icon src="res/ios/icon-72@2x.png" width="144" height="144" />
+                  <!-- iPhone Spotlight and Settings Icon -->
+                  <icon src="res/ios/icon-small.png" width="29" height="29" />
+                  <icon src="res/ios/icon-small@2x.png" width="58" height="58" />
+                  <!-- iPad Spotlight and Settings Icon -->
+                  <icon src="res/ios/icon-50.png" width="50" height="50" />
+                  <icon src="res/ios/icon-50@2x.png" width="100" height="100" />
+         </platform>
+
+Tizen
+
+         <platform name="tizen">
+                  <icon src="res/tizen/icon-128.png" width="128" height="128" />
+         </platform>
+        
+Windows Phone8
+
+         <platform name="wp8">
+                  <icon src="res/wp/ApplicationIcon.png" width="99" height="99" />
+                  <!-- tile image -->
+                  <icon src="res/wp/Background.png" width="159" height="159" />
+         </platform>
+
+Windows8
+
+         <platform name="windows8">
+                  <icon src="res/windows8/logo.png" width="150" height="150" />
+                  <icon src="res/windows8/smalllogo.png" width="30" height="30" />
+                  <icon src="res/windows8/storelogo.png" width="50" height="50" />
+         </platform>
+
+## Configuring Splash Screens in the CLI
+
+In the top-level `config.xml` file (not the one in `platforms`), add configuration elements like those specified here.
+
+# Example configuration 
+
+Please notice that the value of the "src" attribute is relative to the project directory and not to the www directory.
+You can name the source image whatever you like. The internal name in the app are determined by Cordova.
+
+    <platform name="android">
+        <!-- you can use any density that exists in the Android project -->
+        <splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
+        <splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
+        <splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
+        <splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>
+
+        <splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
+        <splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
+        <splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
+        <splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
+    </platform>
+
+    <platform name="ios">
+        <!-- images are determined by width and height. The following are supported -->
+        <splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
+        <splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/>
+        <splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
+        <splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
+        <splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
+        <splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/>
+        <splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/>
+        <splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/>
+        <splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/>
+        <splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>
+    </platform>
+
+    <platform name="wp8">
+        <!-- images are determined by width and height. The following are supported -->
+        <splash src="res/screen/wp8/SplashScreenImage.jpg" width="768" height="1280"/>
+    </platform>
+
+    <platform name="windows8">
+        <!-- images are determined by width and height. The following are supported -->
+        <splash src="res/screen/windows8/splashscreen.png" width="620" height="300"/>
+    </platform>
+
+    <platform name="blackberry10">
+        <!-- Add a rim:splash element for each resolution and locale you wish -->
+        <!-- http://developer.blackberry.com/html5/documentation/rim_splash_element.html -->
+        <rim:splash src="res/screen/windows8/splashscreen.png"/>
+    </platform>
+
+
+    <preference name="SplashScreenDelay" value="10000" />
+
+# Supported platforms 
+
+As of now (Cordova 3.5.0 July 2014) the following platforms support splash screens.
+
+    android
+    ios
+    wp8
+    windows8
+    blackberry10
+
+# Splashscreen Plugin
+
+  Apache Cordova also offers special splash screen plugin which could be used to programmatically display and hide a splash screen during application launch
+  https://github.com/apache/cordova-plugin-splashscreen
+
+
diff --git a/docs/en/5.1.1/config_ref/index.md b/docs/en/5.1.1/config_ref/index.md
new file mode 100644
index 0000000..ec92e51
--- /dev/null
+++ b/docs/en/5.1.1/config_ref/index.md
@@ -0,0 +1,257 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# The config.xml File
+
+Many aspects of an app's behavior can be controlled with a global
+configuration file, `config.xml`.  This
+platform-agnostic XML file is arranged based on the W3C's [Packaged
+Web Apps (Widgets)](http://www.w3.org/TR/widgets/) specification, and
+extended to specify core Cordova API features, plugins, and
+platform-specific settings.
+
+For projects created with the Cordova CLI (described in The
+Command-Line Interface), this file can be found in the top-level
+directory:
+
+        app/config.xml
+
+Note that before version 3.3.1-0.2.0, the file existed at `app/www/config.xml`,
+and that having it here is still supported.
+
+When using the CLI to build a project, versions of this file are
+passively copied into various `platforms/` subdirectories, for example:
+
+        app/platforms/ios/AppName/config.xml
+        app/platforms/blackberry10/www/config.xml
+        app/platforms/android/res/xml/config.xml
+
+This section details global and cross-platform configuration options.
+See the following sections for platform-specific options:
+
+- iOS Configuration
+- Android Configuration
+- BlackBerry 10 Configuration
+
+In addition to the various configuration options detailed below, you
+can also configure an application's core set of images for each target
+platform. See Icons and Splash Screens for more information.
+
+## Core Configuration Elements
+
+This example shows the default `config.xml` generated by the CLI's
+`create` command, described in The Command-Line Interface:
+
+        <widget id="com.example.hello" version="0.0.1">
+            <name>HelloWorld</name>
+            <description>
+                A sample Apache Cordova application that responds to the deviceready event.
+            </description>
+            <author email="dev@callback.apache.org" href="http://cordova.io">
+                Apache Cordova Team
+            </author>
+            <content src="index.html" />
+            <access origin="*" />
+        </widget>
+
+The following configuration elements appear in the top-level
+`config.xml` file, and are supported across all supported Cordova
+platforms:
+
+- The `<widget>` element's `id` attribute provides the app's
+  reverse-domain identifier, and the `version` its full version number
+  expressed in major/minor/patch notation.
+
+  The widget tag can also have attributes that specify alternative versions,
+  namely versionCode for Android and CFBundleVersion for iOS. See the
+  Additional Versioning section below for details.
+
+- The `<name>` element specifies the app's formal name, as it appears
+  on the device's home screen and within app-store interfaces.
+
+- The `<description>` and `<author>` elements specify metadata and
+  contact information that may appear within app-store listings.
+
+- The optional `<content>` element defines the app's starting
+  page in the top-level web assets directory. The default value is
+  `index.html`, which customarily appears in a project's top-level
+  `www` directory.
+
+- `<access>` elements define the set of external domains the app is
+  allowed to communicate with. The default value shown above allows
+  it to access any server. See the Domain Whitelist Guide for details.
+
+- The `<preference>` tag sets various options as pairs of
+  `name`/`value` attributes. Each preference's `name` is
+  case-insensitive.  Many preferences are unique to specific
+  platforms, as listed at the top of this page. The following sections
+  detail preferences that apply to more than one platform.
+
+### Additional Versioning
+
+Both, Android and iOS support a second version string (or number) in addition
+to the one visible in app stores,
+[versionCode](http://developer.android.com/tools/publishing/versioning.html)
+for Android and
+[CFBundleVersion](http://stackoverflow.com/questions/4933093/cfbundleversion-in-the-info-plist-upload-error)
+for iOS.
+Below is an example that explicitly sets versionCode and CFBundleVersion
+
+        <widget id="io.cordova.hellocordova"
+          version="0.0.1"
+          android-versionCode="7"
+          ios-CFBundleVersion="3.3.3">
+
+If alternative version is not specified, the following
+defaults will be used:
+
+        // assuming version = MAJOR.MINOR.PATCH-whatever
+        versionCode = PATCH + MINOR * 100 + MAJOR * 10000
+        CFBundleVersion = "MAJOR.MINOR.PATCH"
+
+## Global Preferences
+
+The following global preferences apply to all platforms:
+
+- `Fullscreen` allows you to hide the status bar at the top of the
+  screen. The default value is `false`. Example:
+
+        <preference name="Fullscreen" value="true" />
+
+## Multi-Platform Preferences
+
+The following preferences apply to more than one platform, but not to
+all of them:
+
+- `DisallowOverscroll` (boolean, defaults to `false`): set to `true`
+  if you don't want the interface to display any feedback when users
+  scroll past the beginning or end of content.
+
+        <preference name="DisallowOverscroll" value="true"/>
+
+  Applies to Android and iOS. On iOS, overscroll gestures cause
+  content to bounce back to its original position.  On Android, they
+  produce a more subtle glowing effect along the top or bottom edge of
+  the content.
+
+- `BackgroundColor`: Set the app's background color.  Supports a
+  four-byte hex value, with the first byte representing the alpha
+  channel, and standard RGB values for the following three bytes.  This
+  example specifies blue:
+
+        <preference name="BackgroundColor" value="0xff0000ff"/>
+
+  Applies to Android and BlackBerry. Overrides CSS otherwise available
+  across _all_ platforms, for example: `body{background-color:blue}`.
+
+- `HideKeyboardFormAccessoryBar` (boolean, defaults to `false`): set
+  to `true` to hide the additional toolbar that appears above the
+  keyboard, helping users navigate from one form input to another.
+
+        <preference name="HideKeyboardFormAccessoryBar" value="true"/>
+
+  Applies to iOS and BlackBerry.
+  
+- `Orientation` (string, defaults to `default`): allows you to lock 
+  orientation and prevent the interface from rotating in response to 
+  changes in orientation. Possible values are `default`, `landscape` 
+  or `portrait`. Example:
+
+        <preference name="Orientation" value="landscape" />
+    
+  Additionally, you can specify any platform-specific orientation value
+  if you place the `<preference>` element within a `<platform>` element:
+  
+        <platform name="android">
+            <preference name="Orientation" value="sensorLandscape" />
+        </platform>
+  
+  Applies to Android, iOS, WP8, Amazon Fire OS and Firefox OS.
+
+  __NOTE__: The `default` value means Cordova will strip the orientation
+  preference entry from the platform's manifest/configuration file
+  allowing the platform to fallback to its default behavior.
+
+  For iOS, to specify both portrait & landscape mode you would use the platform specific value `all`:
+
+        <platform name="ios">
+            <preference name="Orientation" value="all" />
+        </platform>
+
+  For iOS, orientation can be programmatically controlled by defining a javascript callback on `window`:
+    <pre>
+    /** 
+     * @param {Number} degree 
+     *     UIInterfaceOrientationPortrait: 0, 
+     *     UIInterfaceOrientationLandscapeRight: 90, 
+     *     UIInterfaceOrientationLandscapeLeft: -90, 
+     *     UIInterfaceOrientationPortraitUpsideDown: 180 
+     *
+     * @returns {Boolean} Indicating if rotation should be allowed.
+     */
+    function shouldRotateToOrientation(degrees) {
+      return true;
+    }
+    </pre>
+
+## The _feature_ Element
+
+If you use the CLI to build applications, you use the `plugin` command
+to enable device APIs. This does not modify the top-level `config.xml`
+file, so the `<feature>` element does not apply to your workflow. If
+you work directly in an SDK and using the platform-specific
+`config.xml` file as source, you use the `<feature>` tag to enable
+device-level APIs and external plugins. They often appear with custom values in
+platform-specific `config.xml` files. For example, here is how to specify the
+Device API for Android projects:
+
+        <feature name="Device">
+            <param name="android-package" value="org.apache.cordova.device.Device" />
+        </feature>
+
+Here is how the element appears for iOS projects:
+
+        <feature name="Device">
+            <param name="ios-package" value="CDVDevice" />
+        </feature>
+
+See the API Reference for details on how to specify each feature. See
+the Plugin Development Guide for more information on plugins.
+
+
+## The _platform_ Element
+
+When using the CLI to build applications, it is sometimes necessary to specify
+preferences or other elements specific to a particular platform. Use the `<platform>`
+element to specify configuration that should only appear in a single platform-specific
+`config.xml` file. For example, here is how to specify that only android should use the
+Fullscreen preference:
+
+        <platform name="android">
+            <preference name="Fullscreen" value="true" />
+        </platform>
+
+## The _hook_ Element
+
+Represents your custom script which will be called by Cordova when
+certain action occurs (for example, after plugin is added or platform
+prepare logic is invoked). This is useful when you need to extend
+default Cordova functionality. See Hooks Guide for more information.
+
+    <hook type="after_plugin_install" src="scripts/afterPluginInstall.js" />
diff --git a/docs/en/5.1.1/cordova/events/events.backbutton.md b/docs/en/5.1.1/cordova/events/events.backbutton.md
new file mode 100644
index 0000000..16b4a17
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.backbutton.md
@@ -0,0 +1,81 @@
+---
+ license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# backbutton
+
+The event fires when the user presses the back button.
+
+    document.addEventListener("backbutton", yourCallbackFunction, false);
+
+## Details
+
+To override the default back-button behavior, register an event
+listener for the `backbutton` event, typically by calling
+`document.addEventListener` once you receive the `deviceready` event.
+It is no longer necessary to call any other method to override the
+back-button behavior.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- Windows Phone 8
+
+## Quick Example
+
+    document.addEventListener("backbutton", onBackKeyDown, false);
+
+    function onBackKeyDown() {
+        // Handle the back button
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Back Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("backbutton", onBackKeyDown, false);
+        }
+
+        // Handle the back button
+        //
+        function onBackKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.deviceready.md b/docs/en/5.1.1/cordova/events/events.deviceready.md
new file mode 100644
index 0000000..65e6ac9
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.deviceready.md
@@ -0,0 +1,90 @@
+---
+  license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# deviceready
+
+The event fires when Cordova is fully loaded.
+
+    document.addEventListener("deviceready", yourCallbackFunction, false);
+
+## Details
+
+This event is essential to any application. It signals that Cordova's
+device APIs have loaded and are ready to access.
+
+Cordova consists of two code bases: native and JavaScript. While the
+native code loads, a custom loading image displays. However,
+JavaScript only loads once the DOM loads. This means the web app may
+potentially call a Cordova JavaScript function before the
+corresponding native code becomes available.
+
+The `deviceready` event fires once Cordova has fully loaded. Once the
+event fires, you can safely make calls to Cordova APIs.  Applications
+typically attach an event listener with `document.addEventListener`
+once the HTML document's DOM has loaded.
+
+The `deviceready` event behaves somewhat differently from others.  Any
+event handler registered after the `deviceready` event fires has its
+callback function called immediately.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+- Windows Phone 8
+- Windows 8
+
+## Quick Example
+
+    document.addEventListener("deviceready", onDeviceReady, false);
+
+    function onDeviceReady() {
+        // Now safe to use device APIs
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Device Ready Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Now safe to use device APIs
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.endcallbutton.md b/docs/en/5.1.1/cordova/events/events.endcallbutton.md
new file mode 100644
index 0000000..8b3e21d
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.endcallbutton.md
@@ -0,0 +1,78 @@
+---
+  license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# endcallbutton
+
+This event fires when the user presses the end call button.
+
+    document.addEventListener("endcallbutton", yourCallbackFunction, false);
+
+## Details
+
+The event overrides the default end call behavior.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("endcallbutton", onEndCallKeyDown, false);
+
+    function onEndCallKeyDown() {
+        // Handle the end call button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>End Call Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("endcallbutton", onEndCallKeyDown, false);
+        }
+
+        // Handle the end call button
+        //
+        function onEndCallKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.md b/docs/en/5.1.1/cordova/events/events.md
new file mode 100644
index 0000000..16c058b
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.md
@@ -0,0 +1,47 @@
+---
+  license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Events
+
+> Cordova lifecycle events.
+
+## Event Types
+
+- deviceready
+- pause
+- resume
+- backbutton
+- menubutton
+- searchbutton
+- startcallbutton
+- endcallbutton
+- volumedownbutton
+- volumeupbutton
+
+## Events added by [cordova-plugin-battery-status](https://github.com/apache/cordova-plugin-battery-status/blob/master/README.md)
+
+- batterycritical
+- batterylow
+- batterystatus
+
+## Events added by [cordova-plugin-network-information](https://github.com/apache/cordova-plugin-network-information/blob/master/README.md)
+
+- online
+- offline
+
diff --git a/docs/en/5.1.1/cordova/events/events.menubutton.md b/docs/en/5.1.1/cordova/events/events.menubutton.md
new file mode 100644
index 0000000..2d3006a
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.menubutton.md
@@ -0,0 +1,80 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# menubutton
+
+The event fires when the user presses the menu button.
+
+    document.addEventListener("menubutton", yourCallbackFunction, false);
+
+## Details
+
+Applying an event handler overrides the default menu button behavior.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("menubutton", onMenuKeyDown, false);
+
+    function onMenuKeyDown() {
+        // Handle the back button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Menu Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("menubutton", onMenuKeyDown, false);
+        }
+
+        // Handle the menu button
+        //
+        function onMenuKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.pause.md b/docs/en/5.1.1/cordova/events/events.pause.md
new file mode 100644
index 0000000..f5530ef
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.pause.md
@@ -0,0 +1,101 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# pause
+
+The event fires when an application is put into the background.
+
+    document.addEventListener("pause", yourCallbackFunction, false);
+
+## Details
+
+The `pause` event fires when the native platform puts the application
+into the background, typically when the user switches to a different
+application.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 8
+- Windows 8
+
+## Quick Example
+
+    document.addEventListener("pause", onPause, false);
+
+    function onPause() {
+        // Handle the pause event
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Pause Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            document.addEventListener("pause", onPause, false);
+        }
+
+        // Handle the pause event
+        //
+        function onPause() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
+
+## iOS Quirks
+
+In the `pause` handler, any calls to the Cordova API or to native
+plugins that go through Objective-C do not work, along with any
+interactive calls, such as alerts or `console.log()`. They are only
+processed when the app resumes, on the next run loop.
+
+The iOS-specific `resign` event is available as an alternative to
+`pause`, and detects when users enable the __Lock__ button to lock the
+device with the app running in the foreground.  If the app (and
+device) is enabled for multi-tasking, this is paired with a subsequent
+`pause` event, but only under iOS 5. In effect, all locked apps in iOS
+5 that have multi-tasking enabled are pushed to the background.  For
+apps to remain running when locked under iOS 5, disable the app's
+multi-tasking by setting
+[UIApplicationExitsOnSuspend](http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html)
+to `YES`. To run when locked on iOS 4, this setting does not matter.
diff --git a/docs/en/5.1.1/cordova/events/events.resume.md b/docs/en/5.1.1/cordova/events/events.resume.md
new file mode 100644
index 0000000..d42ce05
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.resume.md
@@ -0,0 +1,114 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# resume
+
+The event fires when an application is retrieved from the background.
+
+    document.addEventListener("resume", yourCallbackFunction, false);
+
+## Details
+
+The `resume` event fires when the native platform pulls the
+application out from the background.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 8
+- Windows 8
+
+## Quick Example
+
+    document.addEventListener("resume", onResume, false);
+
+    function onResume() {
+        // Handle the resume event
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Resume Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            document.addEventListener("resume", onResume, false);
+        }
+
+        // Handle the resume event
+        //
+        function onResume() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
+
+## iOS Quirks
+
+Any interactive functions called from a `pause` event handler execute
+later when the app resumes, as signaled by the `resume` event. These
+include alerts, `console.log()`, and any calls from plugins or the
+Cordova API, which go through Objective-C.
+
+- __active__ event
+
+    The iOS-specific `active` event is available as an alternative to
+`resume`, and detects when users disable the __Lock__ button to unlock
+the device with the app running in the foreground.  If the app (and
+device) is enabled for multi-tasking, this is paired with a subsequent
+`resume` event, but only under iOS 5. In effect, all locked apps in
+iOS 5 that have multi-tasking enabled are pushed to the background.
+For apps to remain running when locked under iOS 5, disable the app's
+multi-tasking by setting [UIApplicationExitsOnSuspend](http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html)
+to `YES`. To run when locked on iOS 4, this setting does not matter.
+    
+- __resume__ event
+
+    When called from a `resume` event handler, interactive functions such
+as `alert()` need to be wrapped in a `setTimeout()` call with a
+timeout value of zero, or else the app hangs. For example:
+
+        document.addEventListener("resume", onResume, false);
+        function onResume() {
+           setTimeout(function() {
+                  // TODO: do your thing!
+                }, 0);
+        }
diff --git a/docs/en/5.1.1/cordova/events/events.searchbutton.md b/docs/en/5.1.1/cordova/events/events.searchbutton.md
new file mode 100644
index 0000000..bdde91e
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.searchbutton.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# searchbutton
+
+The event fires when the user presses the search button on Android.
+
+    document.addEventListener("searchbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default search button behavior on Android
+you can register an event listener for the 'searchbutton' event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Android
+
+## Quick Example
+
+    document.addEventListener("searchbutton", onSearchKeyDown, false);
+
+    function onSearchKeyDown() {
+        // Handle the search button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Search Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("searchbutton", onSearchKeyDown, false);
+        }
+
+        // Handle the search button
+        //
+        function onSearchKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.startcallbutton.md b/docs/en/5.1.1/cordova/events/events.startcallbutton.md
new file mode 100644
index 0000000..ec6f61f
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.startcallbutton.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# startcallbutton
+
+The event fires when the user presses the start call button.
+
+    document.addEventListener("startcallbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default start call behavior you can
+register an event listener for the `startcallbutton` event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("startcallbutton", onStartCallKeyDown, false);
+
+    function onStartCallKeyDown() {
+        // Handle the start call button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Start Call Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("startcallbutton", onStartCallKeyDown, false);
+        }
+
+        // Handle the start call button
+        //
+        function onStartCallKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.volumedownbutton.md b/docs/en/5.1.1/cordova/events/events.volumedownbutton.md
new file mode 100644
index 0000000..47e4842
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.volumedownbutton.md
@@ -0,0 +1,80 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# volumedownbutton
+
+The event fires when the user presses the volume down button.
+
+    document.addEventListener("volumedownbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default volume down behavior you can
+register an event listener for the `volumedownbutton` event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+- Android
+
+## Quick Example
+
+    document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+
+    function onVolumeDownKeyDown() {
+        // Handle the volume down button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Volume Down Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+        }
+
+        // Handle the volume down button
+        //
+        function onVolumeDownKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/events/events.volumeupbutton.md b/docs/en/5.1.1/cordova/events/events.volumeupbutton.md
new file mode 100644
index 0000000..9ae81fb
--- /dev/null
+++ b/docs/en/5.1.1/cordova/events/events.volumeupbutton.md
@@ -0,0 +1,80 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# volumeupbutton
+
+The event fires when the user presses the volume up button.
+
+    document.addEventListener("volumeupbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default volume up behavior you can
+register an event listener for the `volumeupbutton` event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+- Android
+
+## Quick Example
+
+    document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
+
+    function onVolumeUpKeyDown() {
+        // Handle the volume up button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Volume Up Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
+        }
+
+        // Handle the volume up button
+        //
+        function onVolumeUpKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/5.1.1/cordova/plugins/pluginapis.md b/docs/en/5.1.1/cordova/plugins/pluginapis.md
new file mode 100644
index 0000000..44f6efe
--- /dev/null
+++ b/docs/en/5.1.1/cordova/plugins/pluginapis.md
@@ -0,0 +1,93 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Plugin APIs
+
+Cordova ships with a minimal set of APIs, and projects add what extra APIs they require through plugins.
+
+You can search through all existing plugins (including third-party plugins) on [npm](https://www.npmjs.com/search?q=ecosystem%3Acordova).
+
+The traditional set of core Cordova plugins are as follows:
+
+- [Battery Status](https://www.npmjs.com/package/cordova-plugin-battery-status)
+> Monitor the status of the device's battery.
+
+- [Camera](https://www.npmjs.com/package/cordova-plugin-camera)
+> Capture a photo using the device's camera.
+
+- [Console](https://www.npmjs.com/package/cordova-plugin-console)
+> Add additional capability to console.log().
+
+- [Contacts](https://www.npmjs.com/package/cordova-plugin-contacts)
+> Work with the devices contact database.
+
+- [Device](https://www.npmjs.com/package/cordova-plugin-device)
+> Gather device specific information.
+
+- [Device Motion (Accelerometer)](https://www.npmjs.com/package/cordova-plugin-device-motion)
+> Tap into the device's motion sensor.
+
+- [Device Orientation (Compass)](https://www.npmjs.com/package/cordova-plugin-device-orientation)
+> Obtain the direction that the device is pointing.
+
+- [Dialogs](https://www.npmjs.com/package/cordova-plugin-dialogs)
+> Visual device notifications.
+
+- [FileSystem](https://www.npmjs.com/package/cordova-plugin-file)
+> Hook into native file system through JavaScript.
+
+- [File Transfer](https://www.npmjs.com/package/cordova-plugin-file-transfer)
+> Hook into native file system through JavaScript.
+
+- [Geolocation](https://www.npmjs.com/package/cordova-plugin-geolocation)
+> Make your application location aware.
+
+- [Globalization](https://www.npmjs.com/package/cordova-plugin-globalization)
+> Enable representation of objects specific to a locale.
+
+- [InAppBrowser](https://www.npmjs.com/package/cordova-plugin-inappbrowser)
+> Launch URLs in another in-app browser instance.
+
+- [Media](https://www.npmjs.com/package/cordova-plugin-media)
+> Record and play back audio files.
+
+- [Media Capture](https://www.npmjs.com/package/cordova-plugin-media-capture)
+> Capture media files using device's media capture applications.
+
+- [Network Information (Connection)](https://www.npmjs.com/package/cordova-plugin-network-information)
+> Quickly check the network state, and cellular network information.
+
+- [Splashscreen](https://www.npmjs.com/package/cordova-plugin-splashscreen)
+> Show and hide the applications splash screen.
+
+- [Vibration](https://www.npmjs.com/package/cordova-plugin-vibration)
+> An API to vibrate the device.
+
+- [StatusBar](https://www.npmjs.com/package/cordova-plugin-statusbar)
+> An API for showing, hiding and configuring status bar background.
+
+- [Whitelist](https://www.npmjs.com/package/cordova-plugin-whitelist)
+> A plugin to whitelist network requests. Must install to have any network requests in your applications.
+
+- [Legacy Whitelist](https://www.npmjs.com/package/cordova-plugin-legacy-whitelist)
+> A plugin to use the old style of whitelist before it was ripped out and changed in the whitelist plugin. 
+
+
+
+Non-English translations of these plugin docs can be found by going to the plugin github repos and looking in the docs folder
diff --git a/docs/en/5.1.1/cordova/storage/storage.md b/docs/en/5.1.1/cordova/storage/storage.md
new file mode 100644
index 0000000..d1496b4
--- /dev/null
+++ b/docs/en/5.1.1/cordova/storage/storage.md
@@ -0,0 +1,67 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Storage
+
+> An overview of storage options for Cordova.
+
+Several storage APIs are available for Cordova applications.
+See
+[html5rocks](http://www.html5rocks.com/en/features/storage).
+for a more complete overview and examples.
+
+## LocalStorage
+
+Also known as _web storage_, _simple storage_, or by its alternate
+_session storage_ interface, this API provides synchronous key/value
+pair storage, and is available in underlying WebView implementations.
+Refer to [the W3C spec](http://www.w3.org/TR/webstorage/) for details.
+
+## WebSQL
+
+This API is available in the underlying WebView.
+The [Web SQL Database Specification](http://dev.w3.org/html5/webdatabase/)
+offers more full-featured database tables accessed via SQL queries.
+
+The following platforms support WebSQL:
+
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+
+## IndexedDB
+
+This API is available in the underlying WebView.
+[Indexed DB](http://www.w3.org/TR/IndexedDB/) offers more features
+than LocalStorage but fewer than WebSQL.
+
+The following platforms support IndexedDB:
+
+- BlackBerry 10
+- Firefox OS
+- Windows Phone 8
+- Windows 8
+
+## Plugin-Based Options
+
+In addition to the storage APIs listed above, the
+[File API](https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md)
+allows you to cache data on the local file system.  Other
+[Cordova plugins](http://plugins.cordova.io/) provide similar storage options.
diff --git a/docs/en/5.1.1/guide/appdev/hooks/index.md b/docs/en/5.1.1/guide/appdev/hooks/index.md
new file mode 100644
index 0000000..0d61323
--- /dev/null
+++ b/docs/en/5.1.1/guide/appdev/hooks/index.md
@@ -0,0 +1,255 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Hooks Guide
+
+Cordova Hooks represent special scripts which could be added by application and
+plugin developers or even by your own build system  to customize cordova commands.
+Hook scripts could be defined by adding them to the special predefined folder 
+(`/hooks`) or via configuration files (`config.xml` and `plugin.xml`) and run
+serially in the following order:
+* Application hooks from `/hooks`;
+* Application hooks from `config.xml`;
+* Plugin hooks from `plugins/.../plugin.xml`.
+
+__Note__: `/hooks` directory is considered deprecated in favor of the hook elements
+in config.xml and plugin.xml.
+
+## Supported hook types
+The following hook types are supported:
+
+    after_build
+    after_compile
+    after_clean
+    after_docs
+    after_emulate
+    after_platform_add
+    after_platform_rm
+    after_platform_ls
+    after_plugin_add
+    after_plugin_ls
+    after_plugin_rm
+    after_plugin_search
+    after_plugin_install // Plugin hooks in plugin.xml are executed for a plugin being installed only
+    after_prepare
+    after_run
+    after_serve
+    before_build
+    before_clean
+    before_compile
+    before_docs
+    before_emulate
+    before_platform_add
+    before_platform_rm/
+    before_platform_ls
+    before_plugin_add
+    before_plugin_ls
+    before_plugin_rm
+    before_plugin_search/
+    before_plugin_install // Plugin hooks in plugin.xml are executed for a plugin being installed only
+    before_plugin_uninstall // Plugin hooks in plugin.xml are executed for a plugin being uninstalled only
+    before_prepare
+    before_run
+    before_serve
+    pre_package // Windows and Windows Phone only
+
+## Ways to define hooks
+### Via `/hooks` directory
+
+__Note__: this method is considered deprecated in favor of the hook elements in config.xml and plugin.xml.
+
+To execute custom action when corresponding hook type is fired, use hook type as a name for a subfolder inside 'hooks' directory and place you script file here, for example:
+
+    # script file will be automatically executed after each build
+    hooks/after_build/after_build_custom_action.js
+
+When using these hooks, they will always be run as executable files, not as loadable JavaScript modules.
+__Remember__: Make your scripts executable in this case.
+
+### Config.xml
+
+Hooks can be defined in project's `config.xml` using `<hook>` elements, for example:
+
+    <hook type="before_build" src="scripts/appBeforeBuild.bat" />
+    <hook type="before_build" src="scripts/appBeforeBuild.js" />
+    <hook type="before_plugin_install" src="scripts/appBeforePluginInstall.js" />
+
+    <platform name="wp8">
+        <hook type="before_build" src="scripts/wp8/appWP8BeforeBuild.bat" />
+        <hook type="before_build" src="scripts/wp8/appWP8BeforeBuild.js" />
+        <hook type="before_plugin_install" src="scripts/wp8/appWP8BeforePluginInstall.js" />
+        ...
+    </platform>
+
+    <platform name="windows8">
+        <hook type="before_build" src="scripts/windows8/appWin8BeforeBuild.bat" />
+        <hook type="before_build" src="scripts/windows8/appWin8BeforeBuild.js" />
+        <hook type="before_plugin_install" src="scripts/windows8/appWin8BeforePluginInstall.js" />
+        ...
+    </platform>
+
+### Plugin hooks (plugin.xml)
+
+As a plugin developer you can define hook scripts using `<hook>` elements in a `plugin.xml` like that:
+
+    <hook type="before_plugin_install" src="scripts/beforeInstall.js" />
+    <hook type="after_build" src="scripts/afterBuild.js" />
+
+    <platform name="wp8">
+        <hook type="before_plugin_install" src="scripts/wp8BeforeInstall.js" />
+        <hook type="before_build" src="scripts/wp8BeforeBuild.js" />
+        ...
+    </platform>
+
+`before_plugin_install`, `after_plugin_install`, `before_plugin_uninstall` plugin hooks will be fired exclusively for the plugin being installed/uninstalled.
+
+## Script Interface
+
+### Javascript
+
+If you are writing hooks using Node.js you should use the following module definition:
+```javascript
+module.exports = function(context) {
+    ...
+}
+```
+
+You can make your scipts async using Q:
+```javascript
+module.exports = function(context) {
+    var Q = context.requireCordovaModule('q');
+    var deferral = new Q.defer();
+
+    setTimeout(function(){
+      console.log('hook.js>> end');
+    deferral.resolve();
+    }, 1000);
+
+    return deferral.promise;
+}
+```
+
+`context` object contains hook type, executed script full path, hook options, command-line arguments passed to Cordova and top-level "cordova" object:
+```json
+{
+  "hook": "before_plugin_install",
+  "scriptLocation": "c:\\script\\full\\path\\appBeforePluginInstall.js",
+  "cmdLine": "The\\exact\\command\\cordova\\run\\with arguments",
+  "opts": {
+    "projectRoot":"C:\\path\\to\\the\\project",
+    "cordova": {
+      "platforms": ["wp8"],
+      "plugins": ["com.plugin.withhooks"],
+      "version": "0.21.7-dev"
+    },
+    "plugin": {
+      "id": "com.plugin.withhooks",
+      "pluginInfo": {
+        ...
+      },
+      "platform": "wp8",
+      "dir": "C:\\path\\to\\the\\project\\plugins\\com.plugin.withhooks"
+    }
+  },
+  "cordova": {...}
+}
+
+```
+`context.opts.plugin` object will only be passed to plugin hooks scripts.
+
+You can also require additional Cordova modules in your script using `context.requireCordovaModule` in the following way:
+```javascript
+var Q = context.requireCordovaModule('q');
+```
+
+__Note__:  new module loader script interface is used for the `.js` files defined via `config.xml` or `plugin.xml` only.
+For compatibility reasons hook files specified via `/hooks` folders are run via Node child_process spawn, see 'Non-javascript' section below.
+
+### Non-javascript
+
+__Note__: we highly recommend writing your hooks using Node.js so that they are cross-platform, see 'Javascript' section above.
+
+Non-javascript scripts are run via Node child_process spawn from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables:
+
+* CORDOVA_VERSION - The version of the Cordova-CLI.
+* CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios).
+* CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer)
+* CORDOVA_HOOK - Path to the hook that is being executed.
+* CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate)
+
+If a script returns a non-zero exit code, then the parent cordova command will be aborted.
+
+Also, note that even if you are working on Windows, and in case your hook scripts aren't bat files (which is recommended, if you want your scripts to work in non-Windows operating systems) Cordova CLI will expect a shebang line as the first line for it to know the interpreter it needs to use to launch the script. The shebang line should match the following example:
+
+    #!/usr/bin/env [name_of_interpreter_executable]
+
+## Sample Usage
+
+This sample demonstrates Cordova hooks usage to trace to the console output the
+size of generated .apk file for Android platform.
+
+Create blank Cordova app and add the following definition to `config.xml` to
+tell Cordova to run `afterBuild.js` script after each platform build.
+
+    <hook type="after_build" src="scripts/afterBuild.js" />
+
+Create `scripts/afterBuild.js` file and add the following implementation. 
+We use async version of `fs.stat` method to demonstrate how async functionality
+could be done via hooks.
+
+    module.exports = function(ctx) {
+        // make sure android platform is part of build 
+        if (ctx.opts.platforms.indexOf('android') < 0) {
+            return;
+        }
+        var fs = ctx.requireCordovaModule('fs'),
+            path = ctx.requireCordovaModule('path'),
+            deferral = ctx.requireCordovaModule('q').defer();
+
+        var platformRoot = path.join(ctx.opts.projectRoot, 'platforms/android');
+        var apkFileLocation = path.join(platformRoot, 'build/outputs/apk/android-debug.apk');
+
+        fs.stat(apkFileLocation, function(err,stats) {
+            if (err) {
+                 deferral.reject('Operation failed');
+            } else {
+                console.log('Size of ' + apkFileLocation + ' is ' + stats.size +' bytes');
+                deferral.resolve();
+            }
+        });
+
+        return deferral.promise;
+    };
+
+Parameter `ctx` in example above is passed by Cordova and represents execution
+context such as script full path, target platform, command-line arguments, etc and
+also exposes additional helper functionality. See `Script Interface` section above
+for more details.
+
+You can now add android platform and execute build.
+
+    cordova platform add android
+    ..
+    cordova build
+    ..
+    Size of path\to\app\platforms\android\build\outputs\apk\android-debug.apk is 1821193 bytes
+
+More good usage examples could be found here:
+
+[http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/)
diff --git a/docs/en/5.1.1/guide/appdev/privacy/index.md b/docs/en/5.1.1/guide/appdev/privacy/index.md
new file mode 100644
index 0000000..6183053
--- /dev/null
+++ b/docs/en/5.1.1/guide/appdev/privacy/index.md
@@ -0,0 +1,117 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Privacy Guide
+
+Mobile privacy is a critical issue that every app developer must
+address. Your users expect that their private information will be
+collected and treated appropriately by your app. Also, there are an
+increasing number of jurisdictions that now have legal requirements
+regarding mobile privacy practices.
+
+This guide on mobile app privacy should be considered a _primer_
+addressing some the most significant issues. It outlines some broadly
+accepted best practices and provides references to other more detailed
+guides and references.
+
+* __Privacy Policy__: You app should include a privacy policy that
+  addresses topics such as what kind of information the app collects
+  from or about your users, how that information is used, with whom it
+  is shared, and how users can make privacy-related choices within the
+  app. To aid understanding, you should use plain language and avoid
+  technical jargon. You should make your privacy policy available for
+  users to review prior to download, such as in the app description in
+  the app marketplace. In addition, you should make your privacy
+  policy available within the app itself. The limited size of mobile
+  device displays creates challenges for displaying privacy policies
+  to users. Consider developing a _short form_ of the policy that
+  includes the most important information, and then provide a link to
+  the "long form" policy for those interested in more details. Several
+  groups are attempting to develop icon-based standards for
+  communicating privacy practices, which you may want to consider once
+  these standards mature.
+
+* __Collection of sensitive information__: An app's collection of
+  sensitive personal information raises important privacy concerns.
+  Examples of sensitive personal information include financial
+  information, health information, and information from or about
+  children. It also includes information gathered from certain sensors
+  and databases typically found on mobile devices and tablets, such as
+  geolocation information, contacts/phonebook, microphone/camera, and
+  stored pictures/videos. See the following documentation pages for
+  more information: [camera](cordova_camera_camera.md.html),
+  [capture](cordova_media_capture_capture.md.html),
+  [contacts](cordova_contacts_contacts.md.html), and
+  [geolocation](cordova_geolocation_geolocation.md.html). Generally,
+  you should obtain a user's express permission before collecting
+  sensitive information and, if possible, provide a control mechanism
+  that allows a user to easily change permissions. App operating
+  systems can help in some instances by presenting just-in-time dialog
+  boxes that ask for the user's permission before collection. In these
+  cases, be sure to take advantage of any opportunity to customize the
+  dialog box text to clarify how the app uses and, if applicable,
+  shares such information.
+
+* __Avoiding user surprise__: If the app collects or uses information
+  in a way that may be surprising to users in light of the primary
+  purpose of your app (for example, a music player that accesses
+  stored pictures), you should take similar steps as with the
+  collection of sensitive personal information. That is, you should
+  strongly consider the use of just-in-time dialog boxes to inform the
+  user about the collection or use of that information and, if
+  appropriate, provide a corresponding privacy control.
+
+* __Third party data collection or sharing__: If you app collects
+  information that is provided to another company--such as a social
+  networking platform or an ad network (for example, if your app
+  displays advertising)--you should inform your users of that
+  collection and sharing. At a minimum, your privacy policy should
+  describe the information collection and sharing and, if appropriate,
+  offer your users the ability to control or opt-out of such
+  collection or sharing.
+
+* __Collection limitation and security__: Your users entrust your app
+  with their information and they expect that you will take
+  appropriate security precautions to protect it. One of the best ways
+  to avoid security compromises of personal information is not to
+  collect the information in the first place unless your app has a
+  specific and legitimate business reason for the collection. For
+  information that does need to be collected, ensure that you provide
+  appropriate security controls to protect that information, whether
+  it is stored on the device or on your backend servers. You should
+  also develop an appropriate data retention policy that is
+  implemented within the app and on your backend servers.
+
+Following are some additional helpful mobile privacy guides for developers:
+
+* California Attorney General, [Privacy on the Go: Recommendations for the Mobile Ecosystem][1]
+
+* Center for Democracy & Technology, Future of Privacy Forum, [Best Practices for Mobile App Developers][2]
+
+* CTIA-The Wireless Association, [Best Practices and Guidelines for Location Based Services][3]
+
+* Federal Trade Commission, [Mobile Privacy Disclosures: Building Trust Through Transparency][4]
+
+* Future of Privacy Forum, [Application Privacy][5] Website
+
+[1]: http://oag.ca.gov/sites/all/files/pdfs/privacy/privacy_on_the_go.pdf
+[2]: http://www.futureofprivacy.org/wp-content/uploads/Best-Practices-for-Mobile-App-Developers_Final.pdf
+[3]: http://www.ctia.org/business_resources/wic/index.cfm/AID/11300
+[4]: http://www.ftc.gov/os/2013/02/130201mobileprivacyreport.pdf
+[5]: http://www.applicationprivacy.org
diff --git a/docs/en/5.1.1/guide/appdev/security/index.md b/docs/en/5.1.1/guide/appdev/security/index.md
new file mode 100644
index 0000000..9a8995e
--- /dev/null
+++ b/docs/en/5.1.1/guide/appdev/security/index.md
@@ -0,0 +1,91 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Security Guide
+
+The following guide includes some security best practices that you should consider when developing a Cordova application. Please be aware that security is a very complicated topic and therefore this guide is not exhaustive. If you believe you can contribute to this guide, please feel free to file an issue in Cordova's bug tracker under ["Documentation"](https://issues.apache.org/jira/browse/CB/component/12316407).  This guide is designed to be applicable to general Cordova development (all platforms) but special platform-specific considerations will be noted. 
+
+## This guide discusses the following topics:
+* Whitelist
+* Iframes and the Callback Id Mechanism
+* Certificate Pinning
+* Self-signed Certificates
+* Encrypted storage
+* General Tips
+* Recommended Articles and Other Resources
+
+## Whitelist
+
+* Read and understand the Whitelist Guide
+
+* Domain whitelisting does not work on Android API 10 and below, and WP8 for iframes and XMLHttpRequest. This means an attacker can load any domain in an iframe and any script on that page within the iframe can directly access Cordova JavaScript objects and the corresponding native Java objects. You should take this into consideration when building applications for these platforms. In practice this means making sure you target an Android API higher than 10, and that if possible you do not use an iframe to load external content - use the inAppBrowser plugin or other third-party plugins. 
+
+## Iframes and the Callback Id Mechanism
+
+If content is served in an iframe from a whitelisted domain, that domain will have access to the native Cordova bridge. This means that if you whitelist a third-party advertising network and serve those ads through an iframe, it is possible that a malicious ad will be able to break out of the iframe and perform malicious actions. Because of this, you should generally not use iframes unless you control the server that hosts the iframe content.  Also note that there are third party plugins available to support advertising networks. Note that this statement is not true for iOS, which intercepts everything including iframe connections. 
+
+## Certificate Pinning
+
+Cordova does not support true certificate pinning. The main barrier to this is a lack of native APIs in Android for intercepting SSL connections to perform the check of the server's certificate. (Although it is possible to do certificate pinning on Android in Java using JSSE, the webview on Android is written in C++, and server connections are handled for you by the webview, so it is not possible to use Java and JSSE there.) Since Apache Cordova is meant to offer consistent APIs across multiple platforms, not having a capability in a major platform breaks that consistency.
+
+There are ways to approximate certificate pinning, such as checking the server's public key (fingerprint) is the expected value when your application starts or at other various times during your application's lifetime. There are third-party plugins available for Cordova that can do that. However, this is not the same as true certificate pinning which automatically verifies the expected value on every connection to the server.
+
+## Self-signed Certificates
+
+Using self-signed certificates on your server is not recommended. If you desire SSL, then it is highly recommended that your server have a certificate that has been properly signed by a well-known CA (certificate authority). The inability to do true certificate pinning makes this important.
+
+The reason is that accepting self-signed certificates bypasses the certificate chain validation, which allows any server certificate to be considered valid by the device. This opens up the communication to man-in-the-middle attacks. It becomes very easy for a hacker to not only intercept and read all communication between the device and the server, but also to modify the communication. The device will never know this is happening because it doesn't verify that the server's certificate is signed by a trusted CA. The device has no proof that the server is who it expects. Because of the ease of doing a man-in-the-middle attack, accepting self-signed certificates is only marginally better than just running http instead of https on an untrusted network. Yes, the traffic would be encrypted, but it could be encrypted with the key from a man-in-the-middle, so the man-in-the-middle can access everything, so encryption is useless except to passive observers. Users trust SSL to be secure, and this would be deliberately making it insecure, so the SSL use becomes misleading. If this will be used on a trusted network (i.e., you are entirely inside a controlled enterprise), then self-signed certs are still not recommended. The two recommendations in a trusted network are to just use http because the network itself is trusted, or to get a certificate signed by a trusted CA (not self-signed). Either the network is trusted or it is not.
+
+The principles described here are not specific to Apache Cordova, they apply to all client-server communication.
+
+When running Cordova on Android, using `android:debuggable="true"` in the application manifest will permit SSL errors such as certificate chain validation errors on self-signed certs. So you can use self-signed certs in this configuration, but this is not a configuration that should be used when your application is in production. It is meant to be used only during application development.
+
+
+## Encrypted storage
+
+(TBD)
+
+## General Tips
+
+### Do not use Android Gingerbread!
+* Set your min-target-sdk level higher than 10. API 10 is Gingerbread, and Gingerbread is no longer supported by Google or device manufacturers, and is therefore not recommend by the Cordova team. 
+* Gingerbread has been shown to be insecure and one of the most targeted mobile OSs [http://www.mobilemag.com/2012/11/06/andriod-2-3-gingerbread-security/](http://bgr.com/2012/11/06/android-security-gingerbread-malware/). 
+* The Whitelist on Android does not work with Gingerbread or lower. This means an attacker can load malicious code in an iframe that would then have access to all of the Cordova APIs and could use that access to steal personal data, send SMS messages to premium-rate numbers, and perform other malicious acts. 
+
+### Use InAppBrowser for outside links
+* Use the InAppBrowser when opening links to any outside website. This is much safer than whitelisting a domain name and including the content directly in your application because the InAppBrowser will use the native browser's security features and will not give the website access to your Cordova environment. Even if you trust the third party website and include it directly in your application, that third party website could link to malicious web content. 
+
+### Validate all user input
+* Always validate any and all input that your application accepts. This includes usernames, passwords, dates, uploaded media, etc. Because an attacker could manipulate your HTML and JS assets (either by decompiling your application or using debugging tools like chrome://inspect), this validation should also be performed on your server, especially before handing the data off to any backend service. 
+* Other sources where data should be validated: user documents, contacts, push notifications
+
+### Do not cache sensitive data
+* If usernames, password, geolocation information, and other sensitive data is cached, then it could potentially be retrieved later by an unauthorized user or application.
+
+### Don't use eval() unless you know what you're doing
+* The JavaScript function eval() has a long history of being abused. Using it incorrectly can open your code up for injection attacks, debugging difficulties, and slower code execution. 
+
+### Do not assume that your source code is secure
+* Since a Cordova application is built from HTML and JavaScript assets that get packaged in a native container, you should not consider your code to be secure. It is possible to reverse engineer a Cordova application. 
+
+## Recommended Articles and Other Resources
+
+* [HTML5 Security cheat sheet, detailing how to secure your HTML5 application](https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet)
+* [Phonegap's article on device security, such as using encrypted data](https://github.com/phonegap/phonegap/wiki/Platform-Security)
+* [Whitepaper about well known security flaws in Webview based hybrid applications](http://www.cis.syr.edu/~wedu/Research/paper/webview_acsac2011.pdf)
diff --git a/docs/en/5.1.1/guide/appdev/whitelist/index.md b/docs/en/5.1.1/guide/appdev/whitelist/index.md
new file mode 100644
index 0000000..79698c9
--- /dev/null
+++ b/docs/en/5.1.1/guide/appdev/whitelist/index.md
@@ -0,0 +1,173 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Whitelist Guide
+
+Domain whitelisting is a security model that controls access to
+external domains over which your application has no control. Cordova
+provides a configurable security policy to define which external sites may be
+accessed.  By default, new apps are configured to allow access to any site.
+Before moving your application to production, you should formulate a whitelist
+and allow access to specific network domains and subdomains.
+
+For Android and iOS (as of their 4.0 releases), Cordova's security policy is extensible via a plugin
+interface.  Your app should use the [cordova-plugin-whitelist][wlp], as it provides
+better security and configurability than earlier versions of Cordova.  While
+it is possible to implement your own whitelist plugin, it is not recommended
+unless your app has very specific security policy needs.  See the
+[cordova-plugin-whitelist][wlp] for details on usage and configuration.
+
+For other platforms, Cordova adheres to the [W3C Widget Access][1] specification,
+which relies on the `<access>` element within the app's `config.xml` file to
+enable network access to specific domains. For projects that rely on
+the CLI workflow described in The Command-Line Interface, this file is
+located in the project's top-level directory. Otherwise for
+platform-specific development paths, locations are listed in the
+sections below. (See the various Platform Guides for more information
+on each platform.)
+
+The following examples demonstrate `<access>` whitelist syntax:
+
+* Access to [google.com][2]:
+
+        <access origin="http://google.com" />
+
+* Access to the secure [google.com][3] (`https://`):
+
+        <access origin="https://google.com" />
+
+* Access to the subdomain [maps.google.com][4]:
+
+        <access origin="http://maps.google.com" />
+
+* Access to all the subdomains on [google.com][2], for example
+  [mail.google.com][5] and [docs.google.com][6]:
+
+        <access origin="http://*.google.com" />
+
+* Access to _all_ domains, for example, [google.com][2] and
+  [developer.mozilla.org][7]:
+
+        <access origin="*" />
+
+  This is the default value for newly created CLI projects.
+
+Be aware that some websites may automatically redirect from their home page to
+a different url, such as using https protocol or to a country-specific
+domain. For example http://www.google.com will redirect to use SSL/TLS at
+https://www.google.com, and then may further redirect to a geography such as
+https://www.google.co.uk. Such scenarios may require modified or additional
+whitelist entries beyond your initial requirement. Please consider this
+as you are building your whitelist.
+
+Note that the whitelist applies only to the main Cordova webview, and does not
+apply to an InAppBrowser webview or opening links in the system web browser.
+
+## Amazon Fire OS Whitelisting
+
+Platform-specific whitelisting rules are found in
+`res/xml/config.xml`.
+
+## Android Whitelisting
+
+As above, see [cordova-plugin-whitelist][wlp] for details.  For cordova-android
+prior to 4.0.0, see older versions of this documentation.
+
+## iOS Whitelisting
+
+As above, see [cordova-plugin-whitelist][wlp] for details.  For cordova-ios
+prior to 4.0.0, see older versions of this documentation.
+
+## BlackBerry 10 Whitelisting
+
+The whitelisting rules are found in `www/config.xml`.
+
+BlackBerry 10's use of wildcards differs from other platforms in two
+ways:
+
+* Any content accessed by `XMLHttpRequest` must be declared
+  explicitly. Setting `origin="*"` does not work in this case.
+  Alternatively, all web security may be disabled using the
+  `WebSecurity` preference described in BlackBerry Configuration:
+ 
+        <preference name="websecurity" value="disable" />
+
+* As an alternative to setting `*.domain`, set an additional
+  `subdomains` attribute to `true`. It should be set to `false` by
+  default. For example, the following allows access to `google.com`,
+  `maps.google.com`, and `docs.google.com`:
+
+        <access origin="http://google.com" subdomains="true" />
+
+  The following narrows access to `google.com`:
+
+        <access origin="http://google.com" subdomains="false" />
+
+  Specify access to all domains, including the local `file://`
+  protocol:
+
+    <access origin="*" subdomains="true" />
+
+(For more information on support, see BlackBerry's documentation on the
+[access element][8].)
+
+## Firefox OS
+
+In Firefox OS there is no concept of whitelisting a specific domain. Instead
+there is a special permission called 
+[SystemXHR](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Permissions).
+There is a need to add this permission to `config.xml`:
+
+	<platform name="firefoxos">
+		<permission name="systemXHR" privileged="true" description="load data from server" />
+	</platform>
+
+The `XMLHttpRequest` object needs to be instantiated with two parameters 
+`mozAnon` and `mozSystem`:
+
+	var request = new XMLHttpRequest({
+		mozAnon: true,
+		mozSystem: true});
+
+This solution is transparent so there is no difference for other platforms.
+
+## Windows Phone Whitelisting
+
+The whitelisting rules for Windows Phone 8 are found in the
+app's `config.xml` file.
+
+## Tizen Whitelisting
+
+Whitelisting rules are found in the app's `config.xml` file. The
+platform relies on the same `subdomains` attribute as the BlackBerry
+platform.
+(For more information on support, see Tizen's documentation on the
+[access element][9].)
+
+[wlp]: https://github.com/apache/cordova-plugin-whitelist
+[1]: http://www.w3.org/TR/widgets-access/
+[2]: http://google.com
+[3]: https://google.com
+[4]: http://maps.google.com
+[5]: http://mail.google.com
+[6]: http://docs.google.com
+[7]: http://developer.mozilla.org
+[8]: https://developer.blackberry.com/html5/documentation/ww_developing/Access_element_834677_11.html
+[9]: https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.web.appprogramming%2Fhtml%2Fide_sdk_tools%2Fconfig_editor_w3celements.htm
+
diff --git a/docs/en/5.1.1/guide/cli/index.md b/docs/en/5.1.1/guide/cli/index.md
new file mode 100644
index 0000000..272dd11
--- /dev/null
+++ b/docs/en/5.1.1/guide/cli/index.md
@@ -0,0 +1,550 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+
+---
+
+# The Command-Line Interface
+
+This guide shows you how to create applications and deploy them to
+various native mobile platforms using the `cordova` command-line
+interface (CLI). This tool allows you to create new projects, build
+them on different platforms, and run on real devices or within
+emulators. The CLI is the main tool to use for the cross-platform
+workflow described in the Overview.  Otherwise you can also use the
+CLI to initialize project code, then switch to various platforms' SDKs
+and shell tools for continued development.
+
+## Prerequisites
+
+Before running any command-line tools, you need to install SDKs for
+each platform you wish to target.
+(See the Platform Guides for more details.)
+
+To add support or rebuild a project for any platform, you need to run
+the command-line interface from the same machine that supports the
+platform's SDK. The CLI supports the following combinations:
+
+* iOS             (Mac)
+* Amazon Fire OS  (Mac, Linux, Windows)
+* Android         (Mac, Linux, Windows)
+* BlackBerry 10   (Mac, Linux, Windows)
+* Windows Phone 8 (Windows)
+* Windows         (Windows)
+* Firefox OS      (Mac, Linux, Windows)
+
+On the Mac, the command-line is available via the _Terminal_
+application. On the PC, it's available as _Command Prompt_ under
+_Accessories_.
+
+__NOTE__: For Windows-only platforms, you can still do your
+development on Mac hardware by running Windows in a virtual machine
+environment or in dual-boot mode. For available options, see the
+Windows Phone 8 Platform Guide or the Windows Platform Guide.
+
+The more likely it is that you run the CLI from different machines,
+the more it makes sense to maintain a remote source code repository,
+whose assets you pull down to local working directories.
+
+## Installing the Cordova CLI
+
+The Cordova command-line tool is distributed as an npm package in a
+ready-to-use format. It is not necessary to compile it from source.
+
+To install the `cordova` command-line tool, follow these steps:
+
+1. Download and install [Node.js](http://nodejs.org/). Following
+   installation, you should be able to invoke `node` and `npm` on your
+   command line. If desired, you may optionally use a tool such as `nvm` 
+   or `nave` to manage your Node.js installation.
+
+1. Download and install a [git client](http://git-scm.com/), if you don't
+   already have one. Following installation, you should be able to invoke `git`
+   on your command line. Even though you won't be using `git` manually,
+   the CLI does use it behind-the-scenes to download some assets when
+   creating a new project.
+
+1. Install the `cordova` module using `npm` utility of Node.js. The `cordova`
+   module will automatically be downloaded by the `npm` utility.
+
+   * on OS X and Linux:
+
+            $ sudo npm install -g cordova
+
+       On OS X and Linux, prefixing the `npm` command with
+       `sudo` may be necessary to install this development utility in
+       otherwise restricted directories such as 
+       `/usr/local/share`. If you are using the optional
+       nvm/nave tool or have write access to the install directory,
+       you may be able to omit the `sudo` prefix. There are
+       [more tips](http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears)
+       available on using `npm` without `sudo`, if you desire to do that.
+
+   * on Windows:
+
+            C:\>npm install -g cordova
+
+   The `-g` flag above tells `npm` to install `cordova` globally. Otherwise
+   it will be installed in the `node_modules` subdirectory of the current
+   working directory.
+
+   You may need to add the `npm` directory to your `PATH` in order to invoke
+   globally installed `npm` modules. On Windows, `npm` can usually be found at
+   `C:\Users\username\AppData\Roaming\npm`. On OS X and Linux it can usually
+   be found at `/usr/local/share/npm`.
+   
+   The installation log may produce errors for any uninstalled
+   platform SDKs.
+
+   Following installation, you should be able to run
+   `cordova` on the command line with no arguments and it should
+   print help text.
+
+## Create the App
+
+Go to the directory where you maintain your source code, and run a
+command such as the following:
+
+        $ cordova create hello com.example.hello HelloWorld
+
+It may take some time for the command to complete, so be patient. Running
+the command with the ` -d` option displays information about its progress.
+
+The first argument _hello_ specifies a directory to be generated
+for your project. This directory should not already exist, Cordova will
+create it for you. Its `www` subdirectory houses your application's
+home page, along with various resources under `css`, `js`, and `img`,
+which follow common web development file-naming conventions. These assets
+will be stored on the device's local filesystem, not served remotely. The
+`config.xml` file contains important metadata needed to generate and
+distribute the application.
+
+The second argument `com.example.hello`
+provides your project with a reverse domain-style identifier. This argument
+is optional, but only if you also omit the third argument, since the arguments
+are positional. You can edit
+this value later in the `config.xml` file, but do be aware that there may
+be code generated outside of `config.xml` using this value, such as Java
+package names. The default value is `io.cordova.hellocordova`, but it is
+recommended that you select an appropriate value.
+
+The third argument `HelloWorld` provides the application's display title.
+This argument is optional. You can edit this value later in the `config.xml`
+file, but do be aware that there may be code generated outside of `config.xml`
+using this value, such as Java class names. The default value is `HelloCordova`,
+but it is recommended that you select an appropriate value.
+
+## Add Platforms
+
+All subsequent commands need to be run within the project's directory,
+or any subdirectories within its scope:
+
+        $ cd hello
+
+Before you can build the project, you need to specify a set of target
+platforms. Your ability to run these commands depends on whether your
+machine supports each SDK, and whether you have already installed each
+SDK.  Run any of these from a Mac:
+
+        $ cordova platform add ios
+        $ cordova platform add amazon-fireos
+        $ cordova platform add android
+        $ cordova platform add blackberry10
+        $ cordova platform add firefoxos
+
+Run any of these from a Windows machine, where _wp_ refers to
+different versions of the Windows Phone operating system:
+
+        $ cordova platform add wp8
+        $ cordova platform add windows
+        $ cordova platform add amazon-fireos
+        $ cordova platform add android
+        $ cordova platform add blackberry10
+        $ cordova platform add firefoxos
+
+Run this to check your current set of platforms:
+
+        $ cordova platforms ls
+
+(Note the `platform` and `platforms` commands are synonymous.)
+
+Run either of the following synonymous commands to remove a platform:
+
+        $ cordova platform remove blackberry10
+        $ cordova platform rm amazon-fireos
+        $ cordova platform rm android
+
+Running commands to add or remove platforms affects the contents of
+the project's _platforms_ directory, where each specified platform
+appears as a subdirectory. The _www_ source directory is reproduced
+within each platform's subdirectory, appearing for example in
+`platforms/ios/www` or `platforms/android/assets/www`. Because the CLI
+constantly copies over files from the source _www_ folder, you should only
+edit these files and not the ones located under the _platforms_ subdirectories.
+If you use version control software, you should add this source _www_ folder, 
+along with the _merges_ folder, to your version control system. (More information
+about the _merges_ folder can be found in the Customize Each Platform section below.)
+
+
+__WARNING__: When using the CLI to build your application, you should
+_not_ edit any files in the `/platforms/` directory unless you know
+what you are doing, or if documentation specifies otherwise. The files
+in this directory are routinely overwritten when preparing
+applications for building, or when plugins are reinstalled.
+
+
+If you wish at this point, you can use an SDK such as Eclipse or Xcode
+to open the project you created. You will need to open the derivative set of assets
+from the `/platforms/` directory to develop with an SDK. This is because
+the SDK specific metadata files are stored within the appropriate `/platform/` subdirectory.
+(See the Platform Guides for information on how to develop applications within each IDE.)
+Use this approach if you simply want to initialize a project using the CLI and 
+then switch to an SDK for native work.
+
+Read on if you wish to use the cross-platform workflow approach (the CLI) for the entire
+development cycle.
+
+## Build the App
+
+By default, the `cordova create` script generates a skeletal web-based
+application whose home page is the project's `www/index.html` file.
+Edit this application however you want, but any initialization should
+be specified as part of the `deviceready` event handler, referenced by
+default from `www/js/index.js`.
+
+Run the following command to iteratively build the project:
+
+        $ cordova build
+
+This generates platform-specific code within the project's `platforms`
+subdirectory.  You can optionally limit the scope of each build to
+specific platforms:
+
+        $ cordova build ios
+
+The `cordova build` command is a shorthand for the following, which in
+this example is also targeted to a single platform:
+
+        $ cordova prepare ios
+        $ cordova compile ios
+
+In this case, once you run `prepare`, you can use Apple's Xcode SDK as
+an alternative to modify and compile the platform-specific code that
+Cordova generates within `platforms/ios`. You can use the same
+approach with other platforms' SDKs.
+
+## Test the App on an Emulator or Device
+
+SDKs for mobile platforms often come bundled with emulators that
+execute a device image, so that you can launch the app from the home
+screen and see how it interacts with many platform features.  Run a
+command such as the following to rebuild the app and view it within a
+specific platform's emulator:
+
+        $ cordova emulate android
+
+Some mobile platforms emulate a particular device by default, such as
+the iPhone for iOS projects. For other platforms, you may need to
+first associate a device with an emulator.
+
+__NOTE__: Emulator support is currently not available for Amazon Fire OS.
+
+(See the Platform Guides for details.)
+For example, you may first run the `android` command to launch the
+Android SDK, then run a particular device image, which launches it
+according to its default behavior:
+
+![](img/guide/cli/android_emulate_init.png)
+
+Following up with the `cordova emulate` command refreshes the emulator
+image to display the latest application, which is now available for
+launch from the home screen:
+
+![](img/guide/cli/android_emulate_install.png)
+
+Alternately, you can plug the handset into your computer and test the
+app directly:
+
+        $ cordova run android
+
+Before running this command, you need to set up the device for
+testing, following procedures that vary for each platform. In
+Android and Amazon Fire OS devices, you would have to enable a __USB debugging__ option on
+the device, and perhaps add a USB driver depending on your development
+environmnent.
+See Platform Guides for details on each platform's requirements.
+
+## Add Plugin Features
+
+When you build and view a new project, the default application that
+appears doesn't do very much. You can modify the app in many ways to
+take advantage of standard web technologies, but for the app to
+communicate closely with various device-level features, you need to
+add plugins that provide access to core Cordova APIs.
+
+A _plugin_ is a bit of add-on code that provides an interface to
+native components. You can design your own plugin interface, for
+example when designing a hybrid app that mixes a Cordova WebView with
+native components. (See Embedding WebViews and [Plugin Development
+Guide](guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide) for details.)  More commonly, you would add a plugin to enable
+one of Cordova's basic device-level features
+detailed in the API Reference. 
+
+As of version 3.0, when you create a Cordova project it does not have any
+plugins present. This is the new default behavior. Any plugins you desire,
+even the core plugins, must be explicitly added.
+
+A list of these plugins, including
+additional third-party plugins provided by the community, can be found
+in the registry at
+[plugins.cordova.io](http://plugins.cordova.io/). You can use
+the CLI to search for plugins from this registry. For example,
+searching for `bar` and `code` produces a single result that matches
+both terms as case-insensitive substrings:
+
+        $ cordova plugin search bar code
+
+        com.phonegap.plugins.barcodescanner - Scans Barcodes
+
+Searching for only the `bar` term yields and additional result:
+
+        cordova-plugin-statusbar - Cordova StatusBar Plugin
+
+The `cordova plugin add` command requires you to specify the
+repository for the plugin code.  Here are examples of how you might
+use the CLI to add features to the app:
+
+* Basic device information (Device API):
+
+        $ cordova plugin add cordova-plugin-device
+
+* Network Connection and Battery Events:
+
+        $ cordova plugin add cordova-plugin-network-information
+        $ cordova plugin add cordova-plugin-battery-status
+
+* Accelerometer, Compass, and Geolocation:
+
+        $ cordova plugin add cordova-plugin-device-motion
+        $ cordova plugin add cordova-plugin-device-orientation
+        $ cordova plugin add cordova-plugin-geolocation
+
+* Camera, Media playback and Capture:
+
+        $ cordova plugin add cordova-plugin-camera
+        $ cordova plugin add cordova-plugin-media-capture
+        $ cordova plugin add cordova-plugin-media
+
+* Access files on device or network (File API):
+
+        $ cordova plugin add cordova-plugin-file
+        $ cordova plugin add cordova-plugin-file-transfer
+
+* Notification via dialog box or vibration:
+
+        $ cordova plugin add cordova-plugin-dialogs
+        $ cordova plugin add cordova-plugin-vibration
+
+* Contacts:
+
+        $ cordova plugin add cordova-plugin-contacts
+
+* Globalization:
+
+        $ cordova plugin add cordova-plugin-globalization
+
+* Splashscreen:
+
+        $ cordova plugin add cordova-plugin-splashscreen
+
+* Open new browser windows (InAppBrowser):
+
+        $ cordova plugin add cordova-plugin-inappbrowser
+
+* Debug console:
+
+        $ cordova plugin add cordova-plugin-console
+
+__NOTE__: The CLI adds plugin code as appropriate for each platform.
+If you want to develop with lower-level shell tools or platform SDKs
+as discussed in the Overview, you need to run the Plugman utility to
+add plugins separately for each platform. (For more information, see
+Using Plugman to Manage Plugins.)
+
+Use `plugin ls` (or `plugin list`, or `plugin` by itself) to view
+currently installed plugins. Each displays by its identifier:
+
+        $ cordova plugin ls    # or 'plugin list'
+        [ 'cordova-plugin-console' ]
+
+To remove a plugin, refer to it by the same identifier that appears in
+the listing. For example, here is how you would remove support for a
+debug console from a release version:
+
+        $ cordova plugin rm cordova-plugin-console
+        $ cordova plugin remove cordova-plugin-console    # same
+
+You can batch-remove or add plugins by specifying more than one
+argument for each command:
+
+        $ cordova plugin add cordova-plugin-console cordova-plugin-device
+
+## Advanced Plugin Options
+
+When adding a plugin, several options allow you to specify from where
+to fetch the plugin. The examples above use a well-known
+`registry.cordova.io` registry, and the plugin is specified by the
+`id`:
+
+        $ cordova plugin add cordova-plugin-console
+
+The `id` may also include the plugin's version number, appended after
+an `@` character. The `latest` version is an alias for the most recent
+version. For example:
+
+        $ cordova plugin add cordova-plugin-console@latest
+        $ cordova plugin add cordova-plugin-console@0.2.1
+
+If the plugin is not registered at `registry.cordova.io` but is located in
+another git repository, you can specify an alternate URL:
+
+        $ cordova plugin add https://github.com/apache/cordova-plugin-console.git
+
+The git example above fetches the plugin from the end of the master
+branch, but an alternate git-ref such as a tag or branch can be
+appended after a `#` character:
+
+        $ cordova plugin add https://github.com/apache/cordova-plugin-console.git#r0.2.0
+
+If the plugin (and its `plugin.xml` file) is in a subdirectory within
+the git repo, you can specify it with a `:` character. Note that the
+`#` character is still needed:
+
+        $ cordova plugin add https://github.com/someone/aplugin.git#:/my/sub/dir
+
+You can also combine both the git-ref and the subdirectory:
+
+        $ cordova plugin add https://github.com/someone/aplugin.git#r0.0.1:/my/sub/dir
+
+Alternately, specify a local path to the plugin directory that
+contains the `plugin.xml` file:
+
+        $ cordova plugin add ../my_plugin_dir
+
+## Using _merges_ to Customize Each Platform
+
+While Cordova allows you to easily deploy an app for many different
+platforms, sometimes you need to add customizations.  In that case,
+you don't want to modify the source files in various `www` directories
+within the top-level `platforms` directory, because they're regularly
+replaced with the top-level `www` directory's cross-platform source.
+
+Instead, the top-level `merges` directory offers a place to specify
+assets to deploy on specific platforms. Each platform-specific
+subdirectory within `merges` mirrors the directory structure of the
+`www` source tree, allowing you to override or add files as needed.
+For example, here is how you might uses `merges` to boost the default
+font size for Android and Amazon Fire OS devices:
+
+* Edit the `www/index.html` file, adding a link to an additional CSS
+  file, `overrides.css` in this case:
+
+        <link rel="stylesheet" type="text/css" href="css/overrides.css" />
+
+* Optionally create an empty `www/css/overrides.css` file, which would
+  apply for all non-Android builds, preventing a missing-file error.
+
+* Create a `css` subdirectory within `merges/android`, then add a
+  corresponding `overrides.css` file. Specify CSS that overrides the
+  12-point default font size specified within `www/css/index.css`, for
+  example:
+
+        body { font-size:14px; }
+
+When you rebuild the project, the Android version features the custom
+font size, while others remain unchanged.
+
+You can also use `merges` to add files not present in the original
+`www` directory. For example, an app can incorporate a _back button_
+graphic into the iOS interface, stored in
+`merges/ios/img/back_button.png`, while the Android version can
+instead capture `backbutton` events from the corresponding hardware
+button.
+
+## Help Commands
+
+Cordova features a couple of global commands, which may help you if
+you get stuck or experience a problem.  The `help` command displays
+all available Cordova commands and their syntax:
+
+    $ cordova help
+    $ cordova        # same
+
+Additionally, you can get more detailed help on a specific command.
+For example:
+
+    $ cordova run --help
+
+The `info` command produces a listing of potentially useful details,
+such as currently installed platforms and plugins, SDK versions for
+each platform, and versions of the CLI and `node.js`:
+
+    $ cordova info
+
+It both presents the information to screen and captures the output in
+a local `info.txt` file.
+
+__NOTE__: Currently, only details on iOS and Android platforms are
+available.
+
+## Updating Cordova and Your Project
+
+After installing the `cordova` utility, you can always update it to
+the latest version by running the following command:
+
+        $ sudo npm update -g cordova
+
+Use this syntax to install a specific version:
+
+        $ sudo npm install -g cordova@3.1.0-0.2.0
+
+Run `cordova -v` to see which version is currently running.  Run the `npm
+info` command for a longer listing that includes the current version
+along with other available version numbers:
+
+        $ npm info cordova
+
+Cordova 3.0 is the first version to support the command-line interface
+described in this section. If you are updating from a version prior to
+3.0, you need to create a new project as described above, then copy
+the older application's assets into the top-level `www` directory.
+Where applicable, further details about upgrading to 3.0 are available
+in the Platform Guides.  Once you upgrade to the `cordova`
+command-line interface and use `npm update` to stay current, the more
+time-consuming procedures described there are no longer relevant.
+
+Cordova 3.0+ may still require various changes to
+project-level directory structures and other dependencies. After you
+run the `npm` command above to update Cordova itself, you may need to
+ensure your project's resources conform to the latest version's
+requirements. Run a command such as the following for each platform
+you're building:
+
+        $ cordova platform update android
+        $ cordova platform update ios
+        ...etc.
+
diff --git a/docs/en/5.1.1/guide/hybrid/plugins/index.md b/docs/en/5.1.1/guide/hybrid/plugins/index.md
new file mode 100644
index 0000000..1a5ab14
--- /dev/null
+++ b/docs/en/5.1.1/guide/hybrid/plugins/index.md
@@ -0,0 +1,216 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Plugin Development Guide
+
+A _plugin_ is a package of injected code that allows the Cordova webview within
+which the app renders to communicate with the native platform on
+which it runs.  Plugins provide access to device and platform
+functionality that is ordinarily unavailable to web-based apps.  All
+the main Cordova API features are implemented as plugins, and many
+others are available that enable features such as bar code scanners,
+NFC communication, or to tailor calendar interfaces. There is a
+[registry](http://plugins.cordova.io) of available plugins.
+
+Plugins comprise a single JavaScript interface along with
+corresponding native code libraries for each supported platform.  In essence
+this hides the various native code implementations behind a common
+JavaScript interface.
+
+This section steps through a simple _echo_ plugin that passes a string from
+JavaScript to the native platform and back, one that you can use as a
+model to build far more complex features.  This section discusses the
+basic plugin structure and the outward-facing JavaScript interface.
+For each corresponding native interface, see the list at the end of
+this section.
+
+In addition to these instructions, when preparing to write a plugin it
+is best to look over
+[existing plugins](http://cordova.apache.org/#contribute)
+for guidance.
+
+## Building a Plugin
+
+Application developers use the CLI's `plugin add` command (discussed
+in The Command-Line Interface) to apply a plugin to a project. The
+argument to that command is the URL for a _git_ repository containing
+the plugin code.  This example implements Cordova's Device API:
+
+        $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
+
+The plugin repository must feature a top-level `plugin.xml` manifest
+file. There are many ways to configure this file, details for which
+are available in the Plugin Specification. This abbreviated version of
+the `Device` plugin provides a simple example to use as a model:
+
+        <?xml version="1.0" encoding="UTF-8"?>
+        <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+                id="cordova-plugin-device" version="0.2.3">
+            <name>Device</name>
+            <description>Cordova Device Plugin</description>
+            <license>Apache 2.0</license>
+            <keywords>cordova,device</keywords>
+            <js-module src="www/device.js" name="device">
+                <clobbers target="device" />
+            </js-module>
+            <platform name="ios">
+                <config-file target="config.xml" parent="/*">
+                    <feature name="Device">
+                        <param name="ios-package" value="CDVDevice"/>
+                    </feature>
+                </config-file>
+                <header-file src="src/ios/CDVDevice.h" />
+                <source-file src="src/ios/CDVDevice.m" />
+            </platform>
+        </plugin>
+
+The top-level `plugin` tag's `id` attribute uses the same
+reverse-domain format to identify the plugin package as the apps to
+they're added.  The `js-module` tag specifies the path to the common
+JavaScript interface.  The `platform` tag specifies a corresponding
+set of native code, for the `ios` platform in this case.  The
+`config-file` tag encapsulates a `feature` tag that is injected into
+the platform-specific `config.xml` file to make the platform aware of
+the additional code library.  The `header-file` and `source-file` tags
+specify the path to the library's component files.
+
+## Validating a Plugin
+
+You can use the `plugman` utility to check whether the plugin installs
+correctly for each platform.  Install `plugman` with the following
+[node](http://nodejs.org/) command:
+
+        $ npm install -g plugman
+
+You need an valid app source directory, such as the top-level `www`
+directory included in a default CLI-generated project as described in
+The Command-Line Interface.  Make sure the app's `index.html` home
+page reference the name of the plugin's JavaScript interface, as if it
+were in the same source directory:
+
+        <script src="myplugin.js"></script>
+
+Then run a command such as the following to test whether iOS
+dependencies load properly:
+
+         $ plugman install --platform ios --project /path/to/my/project/www --plugin /path/to/my/plugin
+
+For details on `plugman` options, see Using Plugman to Manage Plugins.
+For information on how to actually _debug_ plugins, see each
+platform's native interface listed at the bottom of this page.
+
+## The JavaScript Interface
+
+The JavaScript provides the front-facing interface, making it perhaps
+the most important part of the plugin.  You can structure your
+plugin's JavaScript however you like, but you need to call
+`cordova.exec` to communicate with the native platform, using the
+following syntax:
+
+        cordova.exec(function(winParam) {},
+                     function(error) {},
+                     "service",
+                     "action",
+                     ["firstArgument", "secondArgument", 42, false]);
+
+Here is how each parameter works:
+
+- `function(winParam) {}`: A success callback function. Assuming your
+  `exec` call completes successfully, this function executes along
+  with any parameters you pass to it.
+
+- `function(error) {}`: An error callback function. If the operation
+  does not complete successfully, this function executes with an
+  optional error parameter.
+
+- `"service"`: The service name to call on the native side. This
+  corresponds to a native class, for which more information is
+  available in the native guides listed below.
+
+- `"action"`: The action name to call on the native side. This
+  generally corresponds to the native class method. See the native
+  guides listed below.
+
+- `[/* arguments */]`: An array of arguments to pass into the native
+  environment.
+
+## Sample JavaScript
+
+This example shows one way to implement the plugin's JavaScript
+interface:
+
+        window.echo = function(str, callback) {
+            cordova.exec(callback, function(err) {
+                callback('Nothing to echo.');
+            }, "Echo", "echo", [str]);
+        };
+
+In this example, the plugin attaches itself to the `window` object as
+the `echo` function, which plugin users would call as follows:
+
+        window.echo("echome", function(echoValue) {
+            alert(echoValue == "echome"); // should alert true.
+        });
+
+Look at the last three arguments to the `cordova.exec` function. The
+first calls the `Echo` _service_, a class name. The second requests
+the `echo` _action_, a method within that class. The third is an array
+of arguments containing the echo string, which is the `window.echo`
+function's the first parameter.
+
+The success callback passed into `exec` is simply a reference to the
+callback function `window.echo` takes. If the native platform fires
+the error callback, it simply calls the success callback and passes it
+a default string.
+
+## Native Interfaces
+
+Once you define JavaScript for your plugin, you need to complement it
+with at least one native implementation. Details for each platform are
+listed below, and each builds on the simple Echo Plugin example above:
+
+- Amazon Fire OS Plugins
+- Android Plugins
+- iOS Plugins
+- BlackBerry 10 Plugins
+- Windows Phone 8 Plugins
+- Windows Plugins
+
+The Tizen platform does not support plugins.
+
+## Publishing Plugins
+
+Once you develop your plugin, you may want to publish and share it
+with the community. You can publish your plugin to the Cordova
+[registry](http://plugins.cordova.io) (based on [`npmjs`](https://github.com/isaacs/npmjs.org)) or
+to any other `npmjs`-based registry. Other developers can install it
+automatically using either `plugman` or the Cordova CLI.  (For details
+on each development path, see Using Plugman to Manage Plugins and The
+Command-Line Interface.)
+
+To publish a plugin you need to use the `plugman` tool and go through
+the following steps:
+
+    $ plugman adduser # that is if you don't have an account yet
+    $ plugman publish /path/to/your/plugin
+    
+That is it!
+
+Running `plugman --help` lists other available registry-based
+commands.
diff --git a/docs/en/5.1.1/guide/hybrid/webviews/index.md b/docs/en/5.1.1/guide/hybrid/webviews/index.md
new file mode 100644
index 0000000..63e9e71
--- /dev/null
+++ b/docs/en/5.1.1/guide/hybrid/webviews/index.md
@@ -0,0 +1,36 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Embedding WebViews
+
+Cordova applications are ordinarily implemented as a browser-based
+_WebView_ within the native mobile platform. This section shows how,
+for supporting platforms, to create your own WebView components that
+make full use of Cordova APIs. You can then deploy these Cordova
+application components along with native components in a hybrid
+application.
+
+To deploy a WebView, you need to be familiar with each native
+programming environment. The following provides instructions for
+supported platforms:
+
+- Amazon Fire OS WebViews
+- Android WebViews
+- iOS WebViews
+- Windows Phone 8.0 WebViews
\ No newline at end of file
diff --git a/docs/en/5.1.1/guide/next/index.md b/docs/en/5.1.1/guide/next/index.md
new file mode 100644
index 0000000..5e86490
--- /dev/null
+++ b/docs/en/5.1.1/guide/next/index.md
@@ -0,0 +1,214 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Next Steps
+
+For developers who have an understanding of how to use the Cordova CLI and make use of plugins, there are a few things you may want to consider researching next to build better, more performant Cordova applications. The following document offers advice on various topics relating to best practices, testing, upgrades, and other topics, but is not meant to be prescriptive. Consider this your launching point for your growth as a Cordova developer. Also, if you see something that can be improved, please [contribute](http://cordova.apache.org/#contribute)!
+
+This guide contains the following topics:
+
+* Best Practices
+* Handling Upgrades
+* Testing
+* Debugging
+* User Interface
+* Special Considerations
+* Keeping Up
+* Getting Help 
+
+# Best Practices
+
+## 1) SPA Is Your Friend
+
+First and foremost - your Cordova applications should adopt the SPA (Single Page Application) design. Loosely defined, a SPA is a client-side application that is run from one request of a web page. The user loads an initial set of resources (HTML, CSS, and JavaScript) and further updates (showing a new view, loading data) is done via AJAX. SPAs are commonly used for more complex client-side applications. GMail is a great example of this. After you load GMail, mail views, editing, and organization are all done by updating the DOM instead of actually leaving the current page to load a completely new one. 
+
+Using a SPA can help you organize your application in a more efficient manner, but it also has specific benefits for Cordova applications. A Cordova application must wait for the deviceready event to fire before any plugins may be used. If you do not use a SPA, and your user clicks to go from one page to another, you will have to wait for deviceready to fire again before you make use of a plugin. This is easy to forget as your application gets larger. 
+
+Even if you choose not to use Cordova, creating a mobile application without using a single page architecture will have serious performance implications. This is because navigating between pages will require scripts, assets, etc., to be reloaded. Even if these assets are cached, there will still be performance issues. 
+
+Examples of SPA libraries you can use in your Cordova applications are:
+
+* [AngularJS](http://angularjs.org)
+* [EmberJS](http://emberjs.com)
+* [Backbone](http://backbonejs.org)
+* [Kendo UI](http://www.telerik.com/kendo-ui)
+* [Monaca](http://monaca.mobi/en/)
+* [ReactJS](http://facebook.github.io/react/)
+* [Sencha Touch](http://www.sencha.com/products/touch/)
+* [jQuery Mobile](http://jquerymobile.com)
+
+And many, many, more.
+
+## 2) Performance Considerations
+
+One of the biggest mistakes a new Cordova developer can make is to assume that the performance they get on a desktop machine is the same they will get on a mobile device. While our mobile devices have gotten more powerful every year, they still lack the power and performance of a desktop. Mobile devices typically have much less RAM and a GPU that is a far cry from their desktop (or even laptop) brethren. A full list of tips here would be too much, but here are a few things to keep in mind (with a list of longer resources at the end for further research).
+
+**Click versus Touch** - The biggest and simplest mistake you can make is to use click events. While these "work" just fine on mobile, most devices impose a 300ms delay on them in order to distinguish between a touch and a touch "hold" event. Using `touchstart`, or `touchend`, will result in a dramatic improvement - 300ms doesn't sound like much, but it can result in jerky UI updates and behavior. You should also consider the fact that “touch” events are not supported on non-webkit browsers, see [CanIUse](http://caniuse.com/#search=touch). In order to deal with these limitations, you can checkout various libraries like HandJS and Fastouch.
+
+**CSS Transitions versus DOM Manipulation** - Using hardware accelerated CSS transitions will be dramatically better than using JavaScript to create animations. See the list of resources at the end of this section for examples.
+
+**Networks Suck** - Ok, networks don't always suck, but the latency of mobile networks, even good mobile networks, is far worse than you probably think. A desktop app that slurps down 500 rows of JSON data, every 30 seconds, will be both slower on a mobile device as well as a battery hog. Keep in mind that Cordova apps have multiple ways to persist data in the app (LocalStorage and the file system for example). Cache that data locally and be cognizant of the amount of data you are sending back and forth. This is an especially important consideration when your application is connected over a cellular network.
+
+**Additional Performance Articles and Resources**
+
+* ["You half assed it"](http://sintaxi.com/you-half-assed-it)
+* ["Top Ten Performance Tips for PhoneGap and Hybrid Apps"](http://coenraets.org/blog/2013/10/top-10-performance-techniques-for-phonegap-and-hybrid-apps-slides-available/)
+* "Fast Apps and Sites with JavaScript": http://channel9.msdn.com/Events/Build/2013/4-313
+
+## 3) Recognize and Handle Offline Status
+
+See the previous tip about networks. Not only can you be on a slow network, it is entirely possible for your application to be completely offline. Your application should handle this in an intelligent manner. If your application does not, people will think your application is broken. Given how easy it is to handle (Cordova supports listening for both an offline and online event), there is absolutely no reason for your application to not respond well when run offline. Be sure to test (see the Testing section below) your application and be sure to test how your application handles when you start in one state and then switch to another.
+
+Note that the online and offline events, as well as the Network Connection API is not perfect. You may need to rely on using an XHR request to see if the device is truly offline or online. At the end of the day, be sure add some form of support for network issues - in fact, the Apple store (and probably other stores) will reject apps that don’t properly handle offline/online states. For more discussion on this topic, see 
+["Is This Thing On?"](http://blogs.telerik.com/appbuilder/posts/13-04-23/is-this-thing-on-%28part-1%29)
+ 
+# Handling Upgrades
+
+## Upgrading Cordova Projects
+
+If your existing project was created using Cordova 3.x, you can upgrade the project by issuing the following:
+
+    cordova platform update platform-name ios, android, etc.
+
+If your existing project was created under a version prior to Cordova 3.x, it would probably be best to create a new Cordova 3.x project, and then copy your existing project’s code and assets to the new project. Typical steps:
+
+* Create a new Cordova 3.x project (cordova create ...)
+* Copy the www folder from your old project to the new project
+* Copy any configuration settings from the old project to the new project
+* Add any plugins used in the old project to the new project
+* Build your project
+* Test, test, test!
+
+Regardless of the project's prior version, it is absolutely critical that you read up on what was changed in the updated version, as the update may break your code. The best place to find this information will be in the release notes published both in the repositories and on the Cordova blog. You will want to test your app thoroughly in order to verify that it is working correctly after you perform the update.
+
+Note: some plugins may not be compatible with the new version of Cordova. If a plugin is not compatible, you may be able to find a replacement plugin that does what you need, or you may need to delay upgrading your project. Alternatively, alter the plugin so that it does work under the new version and contribute back to the community.
+
+## Plugin Upgrades
+As of Cordova 3.4, there is no mechanism for upgrading changed plugins using a single command. Instead, remove the plugin and add it back to your project, and the new version will be installed:
+
+	cordova plugin rm com.some.plugin
+	cordova plugin add com.some.plugin
+
+Be sure to check the updated plugin's documentation, as you may need to adjust your code to work with the new version. Also, double check that the new version of the plugin works with your project’s version of Cordova.
+
+Always test your apps to ensure that installing the new plugin has not broken something that you did not anticipate.
+
+If your project has a lot of plugins that you need updated, it might save time to create a shell or batch script that removes and adds the plugins with one command. 
+
+# Testing
+
+Testing your applications is super important. The Cordova team uses Jasmine but any web friendly unit testing solution will do. 
+
+## Testing on a simulator vs. on a real device
+
+It’s not uncommon to use desktop browsers and device simulators/emulators when developing a Cordova application. However, it is incredibly important that you test your app on as many physical devices as you possibly can:
+
+* Simulators are just that: simulators. For example, your app may work in the iOS simulator without a problem, but it may fail on a real device (especially in certain circumstances, such as a low memory state). Or, your app may actually fail on the simulator while it works just fine on a real device. 
+* Emulators are just that: emulators. They do not represent how well your app will run on a physical device. For example, some emulators may render your app with a garbled display, while a real device has no problem. (If you do encounter this problem, disable the host GPU in the emulator.)
+* Simulators are generally faster than your physical device. Emulators, on the other hand, are generally slower. Do not judge the performance of your app by how it performs in a simulator or an emulator. Do judge the performance of your app by how it runs on a spectrum of real devices.
+* It's impossible to get a good feel for how your app responds to your touch by using a simulator or an emulator. Instead, running the app on a real device can point out problems with the sizes of user interface elements, responsiveness, etc.
+* Although it would be nice to be able to test only on one device per platform, it is best to test on many devices sporting many different OS versions. For example, what works on your particular Android smartphone may fail on another Android device. What works on an iOS 7 device may fail on an iOS 6 device.
+
+It is, of course, impossible to test on every possible device on the market. For this reason, it’s wise to recruit many testers who have different devices. Although they won’t catch every problem, chances are good that they will discover quirks and issues that you would never find alone.
+
+Tip: It is possible on Android Nexus devices to easily flash different versions of Android onto the device. This simple process will allow you to easily test your application on different levels of Android with a single device, without voiding your warranty or requiring you to “jailbreak” or “root” your device. The Google Android factory images and instructions are located at: https://developers.google.com/android/nexus/images#instructions
+
+# Debugging
+
+Debugging Cordova requires some setup. Unlike a desktop application, you can't simply open dev tools on your mobile device and start debugging, luckily there are some great alternatives.
+
+##iOS Debugging
+
+###Xcode
+With Xcode you can debug the iOS native side of your Cordova application. Make sure the Debug Area is showing (View -> Debug Area). Once your app is running on the device (or simulator), you can view log output in the debug area. This is where any errors or warnings will print. You can also set breakpoints within the source files. This will allow you to step through the code one line at a time and view the state of the variables at that time. The state of the variables is shown in the debug area when a breakpoint is hit. Once your app is up and running on the device, you can bring up Safari's web inspector (as described below) to debug the webview and js side of your application. For more details and help, see the Xcode guide: [Xcode Debugging Guide](https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode_Overview/DebugYourApp/DebugYourApp.html#//apple_ref/doc/uid/TP40010215-CH18-SW1)
+
+###Safari Remote Debugging with Web Inspector
+With Safari's web inspector you can debug the webview and js code in your Cordova application. This works only on OSX and only with iOS 6 (and higher). It uses Safari to connect to your device (or the simulator) and will connect the browser's dev tools to the Cordova application. You get what you expect from dev tools - DOM inspection/manipulation, a JavaScript debugger, network inspection, the console, and more. Like Xcode, with Safari's web inspector you can set breakpoints in the JavaScript code and view the state of the variables at that time. You can view any errors, warnings or messages that are printed to the console. You can also run JavaScript commands directly from the console as your app is running. For more details on how to set it up and what you can do, see this excellent blog post: [http://moduscreate.com/enable-remote-web-inspector-in-ios-6/](http://moduscreate.com/enable-remote-web-inspector-in-ios-6/) and this guide: [Safari Web Inspector Guide](https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Introduction/Introduction.html)
+
+## Chrome Remote Debugging
+Virtually the same as the Safari version, this works with Android only but can be used from any desktop operating system. It requires a minimum of Android 4.4 (KitKat), minimum API level of 19, and Chrome 30+ (on the desktop). Once connected, you get the same Chrome Dev Tools experience for your mobile applications as you do with your desktop applications. Even better, the Chrome Dev Tools have a mirror option that shows your app running on the mobile device. This is more than just a view - you can scroll and click from dev tools and it updates on the mobile device. More details on Chrome Remote Debugging may be found here: [https://developers.google.com/chrome/mobile/docs/debugging](https://developers.google.com/chrome/mobile/docs/debugging)
+
+It is possible to use Chrome Dev Tools to inspect iOS apps, through a WebKit proxy: [https://github.com/google/ios-webkit-debug-proxy/](https://github.com/google/ios-webkit-debug-proxy/)
+
+## Ripple
+Ripple is a desktop based emulator for Cordova projects. Essentially it lets you run a Cordova application in your desktop application and fake various Cordova features. For example, it lets you simulate the accelerometer to test shake events. It fakes the camera API by letting you select a picture from your hard drive. Ripple lets you focus more on your custom code rather than worrying about Cordova plugins. You can find out more about Ripple here: [http://ripple.incubator.apache.org/](http://ripple.incubator.apache.org/)
+
+## Weinre
+Weinre creates a local server that can host a remote debug client for your Cordova applications. After you've installed and started it up, you copy a line of code into your Cordova application and then restart it. You can then open a dev tool panel on your desktop to work with the application. Weinre is not quite as fancy as Chrome and Safari Remote debugging but has the benefit of working with a much greater range of operating systems and platforms. More information may be found here: [http://people.apache.org/~pmuellr/weinre/docs/latest/](http://people.apache.org/~pmuellr/weinre/docs/latest/)
+
+## Other Options
+
+* BlackBerry 10 supports debugging as well: [Documentation]( https://developer.blackberry.com/html5/documentation/v2_0/debugging_using_web_inspector.html)
+* You can debug using Firefox App Manager as well, see [this blog post](https://hacks.mozilla.org/2014/02/building-cordova-apps-for-firefox-os/) and this 
+[MDN article](https://developer.mozilla.org/en-US/Apps/Tools_and_frameworks/Cordova_support_for_Firefox_OS#Testing_and_debugging).
+* For more examples and explanation of the above debugging tips, see: [http://developer.telerik.com/featured/a-concise-guide-to-remote-debugging-on-ios-android-and-windows-phone/](http://developer.telerik.com/featured/a-concise-guide-to-remote-debugging-on-ios-android-and-windows-phone/)
+
+# User Interface
+
+Building a Cordova application that looks nice on mobile can be a challenge, especially for developers. Many people chose to use a UI framework to make this easier. Here is a short list of options you may want to consider.
+
+* [jQuery Mobile](http://jquerymobile.com) - jQuery Mobile automatically enhances your layout for mobile optimization. It also handles creating a SPA for you automatically.
+* [ionic](http://ionicframework.com/) - This powerful UI framework actually has its own CLI to handle project creation. 
+* [Ratchet](http://goratchet.com/) - Brought to you by the people who created Bootstrap. 
+* [Kendo UI](http://www.telerik.com/kendo-ui) - Open source UI and application framework from Telerik.
+* [Topcoat](http://topcoat.io)
+* [ReactJS](http://facebook.github.io/react/)
+
+When building your user interface, it is important to think about all platforms that you are targeting and the differences between the user’s expectations. For example, an Android application that has an iOS-style UI will probably not go over well with users. This sometimes is even enforced by the various application stores. Because of this, it is important that you respect the conventions of each platform and therefore are familiar with the various Human Interface Guidelines: 
+* [iOS](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/MobileHIG/index.html)
+* [Android](https://developer.android.com/designWP8)
+* [Windows Phone](http://dev.windowsphone.com/en-us/design/library)
+
+## Additional UI Articles and Resources
+
+Although browser engines become more and more standards complaint, we still live in a prefixed world (-webkit and -ms.) The following article is valuable when developing UI’s in for cross browser apps: [http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10.aspx](http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10.aspx)
+
+# Special Considerations
+
+Although Cordova makes cross-platform development easier, it's just not possible to provide 100% isolation from the underlying native platform. So do be aware of restrictions.
+
+## Platform Quirks
+
+While reading the documentation, look for sections which outline different behaviors or requirements on multiple platforms. If present, these would be in a section titled "Android Quirks", "iOS Quirks", etc. Read through these quirks and be aware of them as you work with Cordova.
+
+## Loading Remote Content
+
+Invoking Cordova JavaScript functions from a remotely-loaded HTML page (an HTML page not stored locally on the device) is an unsupported configuration. This is because Cordova was not designed for this, and the Apache Cordova community does no testing of this configuration. While it can work in some circumstances, it is not recommended nor supported. There are challenges with the same origin policy, keeping the JavaScript and native portions of Cordova synchronized at the same version (since they are coupled via private APIs which may change), the trustworthiness of remote content calling native local functions, and potential app store rejection.
+
+The display of remotely-loaded HTML content in a webview should be done using Cordova's InAppBrowser. The InAppBrowser is designed so that JavaScript running there does not have access to the Cordova JavaScript APIs for the reasons listed above. Please refer to the Security Guide.
+
+# Keeping Up
+
+Here are a few ways to keep up to date with Cordova.
+
+* Subscribe to the [Cordova blog](http://cordova.apache.org/#news).
+* Subscribe to the [developer list](http://cordova.apache.org/#mailing-list). Note - this is not a support group! Rather this is a place where development of Cordova is discussed.
+
+# Getting Help
+
+The following links are the best places to get help for Cordova:
+
+* StackOverflow: [http://stackoverflow.com/questions/tagged/cordova](http://stackoverflow.com/questions/tagged/cordova)
+By using the Cordova tag, you can view and browse all Cordova questions. Note that StackOverflow automatically converts the "Phonegap" tag to "Cordova", so this way you will be able to access historical questions as well
+* PhoneGap Google Group: [https://groups.google.com/forum/#!forum/phonegap](https://groups.google.com/forum/#!forum/phonegap)
+This Google Group was the old support forum for when Cordova was still called PhoneGap. While there are still a lot of Cordova users that frequent this group, the Cordova community has expressed an interest in focusing less on this group and instead using StackOverflow for support
+* Meetup: [http://phonegap.meetup.com](http://phonegap.meetup.com) - 
+Consider finding a local Cordova/PhoneGap meetup group
+
+
diff --git a/docs/en/5.1.1/guide/overview/index.md b/docs/en/5.1.1/guide/overview/index.md
new file mode 100644
index 0000000..3b9828f
--- /dev/null
+++ b/docs/en/5.1.1/guide/overview/index.md
@@ -0,0 +1,158 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+
+---
+
+# Overview
+
+Apache Cordova is an open-source mobile development framework. It allows you
+to use standard web technologies such as HTML5, CSS3, and JavaScript
+for cross-platform development, avoiding each mobile platforms' native
+development language.  Applications execute within wrappers targeted
+to each platform, and rely on standards-compliant API bindings to
+access each device's sensors, data, and network status. 
+
+Apache Cordova graduated in October 2012 as a top level project within the Apache Software Foundation (ASF). Through the ASF, future Cordova development will ensure open stewardship of the project. It will always remain free and open source under the Apache License, Version 2.0.  Visit [cordova.apache.org](http://cordova.apache.org) for more information.
+
+Use Apache Cordova if you are:
+
+* a mobile developer and want to extend an application across more
+  than one platform, without having to re-implement it with each
+  platform's language and tool set.
+
+* a web developer and want to deploy a web app that's packaged for
+  distribution in various app store portals.
+
+* a mobile developer interested in mixing native application
+  components with a _WebView_ (special browser window) that can access
+  device-level APIs, or if you want to develop a plugin interface
+  between native and WebView components.
+
+## Basic Components
+
+Apache Cordova applications rely on a common `config.xml` file that provides
+information about the app and specifies parameters affecting how it
+works, such as whether it responds to orientation shifts. This file
+adheres to the W3C's
+[Packaged Web App](http://www.w3.org/TR/widgets/),
+or _widget_, specification.
+
+The application itself is implemented as a web page, by default a local
+file named _index.html_, that references whatever CSS, JavaScript,
+images, media files, or other resources are necessary for it to run.
+The app executes as a _WebView_ within the native application wrapper,
+which you distribute to app stores.
+
+The Cordova-enabled WebView may provide the application with its
+entire user interface. On some platforms, it can also be a component
+within a larger, hybrid application that mixes the WebView with native
+application components. (See Embedding WebViews for details.)
+
+A _plugin_ interface is available for Cordova and native components to
+communicate with each other. This enables you to invoke native code
+from JavaScript. Ideally, the JavaScript APIs to that native code are
+consistent across multiple device platforms. As of version 3.0, plugins provide
+bindings to standard device APIs.  Third-party plugins provide
+additional bindings to features not necessarily available on all
+platforms. You can find these third-party plugins in the
+[plugin registry](http://plugins.cordova.io) and use them in your
+application. You can also develop your own plugins, as described in the
+Plugin Development Guide. Plugins may be necessary, for example, to
+communicate between Cordova and custom native components.
+
+__NOTE__: As of version 3.0, when you create a Cordova project it does not have
+any plugins present. This is the new default behavior. Any plugins you
+desire, even the core plugins, must be explicitly added.
+
+Cordova does not provide any UI widgets or MV* frameworks. Cordova provides
+only the runtime in which those can execute. If you wish to use UI widgets
+and/or an MV* framework, you will need to select those and include them in
+your application yourself as third-party material.
+
+## Development Paths
+
+As of version 3.0, you can use two basic workflows to create a mobile
+app. While you can often use either workflow to accomplish the same
+task, they each offer advantages:
+
+- __Cross-platform (CLI) workflow__: Use this workflow if you want your app
+  to run on as many different mobile operating systems as possible,
+  with little need for platform-specific development.  This workflow
+  centers around the `cordova` utility, otherwise known as the Cordova
+  _CLI_, that was introduced with Cordova 3.0. The CLI is a high-level
+  tool that allows you to build projects for many platforms at once,
+  abstracting away much of the functionality of lower-level shell
+  scripts. The CLI copies a common set of web assets into
+  subdirectories for each mobile platform, makes any necessary
+  configuration changes for each, runs build scripts to generate
+  application binaries. The CLI also provides a common interface to
+  apply plugins to your app. For more details on the CLI, see The
+  Command-Line Interface. Unless you have a need for the platform-centered
+  workflow, the cross-platform workflow is recommended.
+
+- __Platform-centered workflow__: Use this workflow if you want to
+  focus on building an app for a single platform and need to be able
+  to modify it at a lower level. You need to use this approach, for
+  example, if you want your app to mix custom native components with
+  web-based Cordova components, as discussed in Embedding WebViews.
+  As a rule of thumb, use this workflow if you need to modify the
+  project within the SDK.  This workflow relies on a set of
+  lower-level shell scripts that are tailored for each supported
+  platform, and a separate Plugman utility that allows you to apply
+  plugins.  While you can use this workflow to build cross-platform
+  apps, it is generally more difficult because the lack of a
+  higher-level tool means separate build cycles and plugin
+  modifications for each platform. Still, this workflow allows you
+  greater access to development options provided by each SDK, and is
+  essential for complex hybrid apps. See the various Platform Guides
+  for details on each platform's available shell utilities.
+
+When first starting out, it may be easiest to use the cross-platform
+workflow to create an app, as described in The Command-line Interface.
+You then have the option to switch to a platform-centered workflow if
+you need the greater control the SDK provides.  Lower-level shell
+utilities are available at
+[cordova.apache.org](http://cordova.apache.org) in a separate
+distribution than the CLI. For projects initially generated by the
+CLI, these shell tools are also available in the project's various
+`platforms/*/cordova` directories.
+
+__NOTE__: Once you switch from the CLI-based workflow to one centered
+around the platform-specific SDKs and shell tools, you can't go back.
+The CLI maintains a common set of cross-platform source code, which on
+each build it uses to write over platform-specific source code.  To
+preserve any modifications you make to the platform-specific assets,
+you need to switch to the platform-centered shell tools, which ignore
+the cross-platform source code, and instead relies on the
+platform-specific source code.
+
+## Installing Cordova
+
+The installation of Cordova will differ depending on the workflow above
+you choose:
+
+  * Cross-platform workflow: see The Command-Line Interface.
+
+  * Platform-centered workflow: see the Platform Guides.
+
+After installing Cordova, it is recommended that you review the Platform Guides
+for the mobile platforms that you will be developing for. It is also
+recommended that you also review the Privacy Guide, Security Guide, and
+Next Steps. For configuring Cordova, see The config.xml File.
+For accessing native function on a device from JavaScript, refer
+to the Plugin APIs. And refer to the other included guides as necessary.
diff --git a/docs/en/5.1.1/guide/platforms/amazonfireos/config.md b/docs/en/5.1.1/guide/platforms/amazonfireos/config.md
new file mode 100644
index 0000000..49c2118
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/amazonfireos/config.md
@@ -0,0 +1,81 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to  Amazon Fire OS builds. See [The config.xml
+File](config_ref_index.md.html#The%20config.xml%20File) for information on global configuration options.
+
+- `KeepRunning` (boolean, defaults to `true`): Determines whether the
+  application stays running in the background even after a `pause`
+  event fires. Setting this to `false` does not kill the app after a
+  `pause` event, but simply halts execution of code within the cordova
+  webview while the app is in the background.
+
+        <preference name="KeepRunning" value="false"/>
+
+- `ErrorUrl` (URL, defaults to `null`):
+  If set, will display the referenced page upon an error in the application
+  instead of a dialog with the title "Application Error".
+
+        <preference name="ErrorUrl" value="error.html"/>
+
+- `LoadingDialog` (string, defaults to `null`): If set, displays a dialog with
+  the specified title and message, and a spinner, when loading the first
+  page of an application. The title and message are separated by a comma
+  in this value string, and that comma is removed before the dialog is
+  displayed.
+  
+        <preference name="LoadingDialog" value="Please wait, the app is loading"/>
+
+- `LoadingPageDialog` (string, defaults to `null`): The same as `LoadingDialog`,
+  but for loading every page after the first page in the application.
+
+        <preference name="LoadingPageDialog" value="Please wait, the data is loading"/>
+
+- `LoadUrlTimeoutValue` (number, default is `20000`): When loading a
+  page, the amount of time to wait before throwing a timeout error.
+  This example specifies 10 seconds rather than 20:
+
+        <preference name="LoadUrlTimeoutValue" value="10000"/>
+
+- `SplashScreen`: The name of the file minus its extension in the
+  `res/drawable` directory.  Various assets must share this common
+  name in various subdirectories.
+
+        <preference name="SplashScreen" value="splash"/>
+
+- `SplashScreenDelay` (number, defaults to `5000`): The amount of
+  time the splash screen image displays.
+
+        <preference name="SplashScreenDelay" value="10000"/>
+        
+- `ShowTitle` (boolean, defaults to `false`): Show the title at the top
+  of the screen.
+
+        <preference name="ShowTitle" value="true"/>
+
+- `LogLevel` (string, defaults to `ERROR`): Sets the minimum log level
+  through which log messages from your application will be filtered. Valid
+  values are `ERROR`, `WARN`, `INFO`, `DEBUG`, and `VERBOSE`.
+
+        <preference name="LogLevel" value="VERBOSE"/>
+
diff --git a/docs/en/5.1.1/guide/platforms/amazonfireos/index.md b/docs/en/5.1.1/guide/platforms/amazonfireos/index.md
new file mode 100644
index 0000000..0ea788d
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/amazonfireos/index.md
@@ -0,0 +1,192 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Amazon Fire OS devices, such as the Kindle Fire HDX.
+
+See the following for more detailed platform-specific information:
+
+* Amazon Fire OS Configuration
+* Amazon Fire OS WebViews
+* Amazon Fire OS Plugins
+
+## Introduction
+
+By targeting the Amazon Fire OS platform, Cordova developers can create hybrid web apps that take advantage of the advanced web engine integrated into Kindle Fire devices. Amazon WebView API (AWV) is a Chromium-derived web runtime exclusive to Fire OS. A drop-in replacement for the WebView that comes with Android devices, AWV makes it possible to create better performing and more powerful hybrid web apps by providing support for a faster JavaScript engine (V8), remote debugging, and hardware optimizations for Kindle Fire devices including an accelerated 2D Canvas, and access to HTML5 features not supported by Android’s built in WebView such as: CSS Calc, Form Validation, getUserMedia, IndexedDB, Web Workers, WebSockets and WebGL. 
+
+For more information about the Amazon WebView API, please see the Amazon Developer Portal's [HTML5 Hybrid Apps page](https://developer.amazon.com/public/solutions/platforms/android-fireos/docs/building-and-testing-your-hybrid-app). For questions about getting started and other support issues, please see the Amazon Developer Portal [Forums - HTML5 Hybrid Apps](http://forums.developer.amazon.com/forums/category.jspa?categoryID=41).
+
+
+## Requirements and Support
+
+Developing Cordova apps for Amazon Fire OS requires installation of a variety of support files, including everything needed for Android development, as well as the Amazon WebView SDK. Check the list below for the required installs: 
+
+* The Command-Line Interface
+* [Android SDK](http://developer.android.com/sdk/)
+* [Apache Ant](http://ant.apache.org)
+* [Amazon WebView SDK](https://developer.amazon.com/public/solutions/platforms/android-fireos/docs/building-and-testing-your-hybrid-app)
+
+## Installation
+
+
+### Android SDK and Apache Ant
+
+Install the Android SDK from
+[developer.android.com/sdk](http://developer.android.com/sdk/).  You
+may be presented with a choice of where to install the SDK, otherwise
+move the downloaded `adt-bundle` tree to wherever you store
+development tools.
+
+You'll need to run the Android SDK Manager (`android` from a command line) at least once before starting your Cordova project. Make sure to install the most recent version of the Android SDK Tools and SDK Platform **specifically API level 19**. Please see [Setting up your Development Environment](https://developer.amazon.com/public/resources/development-tools/ide-tools/tech-docs/01-setting-up-your-development-environment) on the Amazon Developer Portal for more information about setting up your development environment for Kindle Fire OS devices. 
+
+Install the Apache Ant build tool by [downloading an Ant binary distribution](http://ant.apache.org/bindownload.cgi), unzipping into a directory you can refer to later. See the [Ant manual](http://ant.apache.org/manual/index.html) for more info.
+
+For Cordova command-line tools to work, you need to include the Android SDK's
+`tools`, `platform-tools` and `apache-ant/bin` directories in your PATH environment.
+
+#### Mac/Linux Path
+
+On Mac, Linux or other Unix-like platforms, you can use a text editor to create or modify the
+`~/.bash_profile` file, adding a line such as the following, depending
+on where the SDK and Ant are installed:
+
+    export PATH=${PATH}:/Development/adt-bundle/sdk/platform-tools:/Development/adt-bundle/sdk/tools:/Development/apache-ant/bin
+
+This exposes SDK tools in newly opened terminal windows. Otherwise run
+this to make them available in the current session:
+
+    $ source ~/.bash_profile
+
+#### Windows Path
+
+To modify the PATH environment on Windows:
+
+* Click on the __Start__ menu in the lower-left corner of the desktop,
+  right-click on __Computer__, then click __Properties__.
+
+* Click __Advanced System Settings__ in the column on the left.
+
+* In the resulting dialog box, press __Environment Variables__.
+
+* Select the __PATH__ variable and press __Edit__.
+
+* Append the following to the PATH based on where you installed the
+  SDK and Ant, for example:
+
+        ;C:\Development\adt-bundle\sdk\platform-tools;C:\Development\adt-bundle\sdk\tools;C:\Development\apache-ant\bin
+
+* Save the value and close both dialog boxes.
+
+* You will also need to enable Java. Open a command prompt and
+type `java`, if it does not run, append the location of the Java binaries to your PATH as well. Make sure %JAVA_HOME% is pointing to installed JDK directory. You might have to add JAVA_HOME environment variable seperately.
+
+    	;%JAVA_HOME%\bin
+
+
+### Amazon WebView SDK
+
+In order to create Cordova apps using the Amazon Fire OS platform target, you'll need to download, unpack and install the Amazon WebView SDK support files. This step will only need to be done for your first Amazon Fire OS project.
+
+* Download the Amazon WebView SDK from the [Amazon Developer Portal](https://developer.amazon.com/public/solutions/platforms/android-fireos/docs/building-and-testing-your-hybrid-app).
+
+* Copy `awv_interface.jar` from the downloaded SDK to Cordova's working directory. Create commonlibs(shown below) folder if it doesn't exist: 
+	
+	**Mac/Linux:** 
+	`~/.cordova/lib/commonlibs/`
+
+	**Windows:**
+	`%USERPROFILE%\.cordova\lib\commonlibs`
+
+
+## Create New Project for Amazon Fire OS
+
+Use the `cordova` utility to set up a new project, as described in The
+Cordova The Command-line Interface. For example, in a source-code directory:
+
+    $ cordova create hello com.example.hello "HelloWorld"
+    $ cd hello
+    $ cordova platform add amazon-fireos
+    $ cordova build
+
+***Note:*** The first time the amazon-fireos platform is installed on your system, it will download the appropriate files to the Cordova working directory, but will then fail as it is missing the AWV SDK support files (see above). Follow the instructions above to install the `awv_interface.jar`, then remove and re-add the amazon-fireos platform to your project. This step will only need to be done for first Amazon Fire OS project.
+
+
+## Deploy to Device
+
+To push an app directly to the device, make sure USB debugging is enabled on your device as described on the
+[Android Developer Site](http://developer.android.com/tools/device.html),
+and use a mini USB cable to plug it into your system.
+
+You can push the app to the device from the command line:
+
+    $ cordova run amazon-fireos
+
+Alternately within Eclipse, right-click the project and choose __Run
+As &rarr; Android Application__.
+
+__Note__: Currently, testing via an emulator is not supported for Amazon WebView based apps, additionally the Amazon WebView API is only available on Fire OS devices. For more information, please see the [Amazon WebView API SDK](https://developer.amazon.com/public/solutions/platforms/android-fireos/docs/building-and-testing-your-hybrid-app) documentation.
+
+### Run Flags
+
+The run command accepts optional parameters as specified in the Cordova Command Line Interface document, Fire OS also accepts an additional `--debug` flag which will enable Chromium's Developer Tools for remote web debugging. 
+
+To use Developer Tools, enter:
+
+	$ cordova run --debug amazon-fireos
+
+This will enable the tools on the running client. You can then connect to the client by port forwarding using the Android Debug Bridge (adb) referring to the app's package name. 
+
+For example:
+
+	adb forward tcp:9222 localabstract:com.example.helloworld.devtools
+
+You can then use the DevTools via a Chromium-based browser by navigating to: `http://localhost:9222`.
+
+### Optional Eclipse support
+
+Once created, you can use the Eclipse that comes along with the Android SDK to modify the project. Beware that modifications made through Eclipse will be overwritten if you continue to use Cordova command line tools.
+
+* Launch the __Eclipse__ application.
+
+* Select the __New Project__ menu item.
+
+* Choose __Android Project from Existing Code__ from the resulting dialog box, and press __Next__:
+    ![](img/guide/platforms/android/eclipse_new_project.png)
+
+* Navigate to `hello`, or whichever directory you created for the project, then to the `platforms/amazon-fireos` subdirectory.
+
+* Eclipse will show you hello and hello-CorddovaLib - 2 projects to be added. Add both.
+
+* Press __Finish__.
+
+Once the Eclipse window opens, a red __X__ may appear to indicate
+unresolved problems. If so, follow these additional steps:
+
+* Right-click on the project directory.
+
+* In the resulting __Properties__ dialog, select __Android__ from the navigation pane.
+
+* For the project build target, select the highest Android API level (currently API Level 19) you have installed.
+
+* Click __OK__.
+
+* Select __Clean__ from the __Project__ menu. This should correct all the errors in the project.
+
diff --git a/docs/en/5.1.1/guide/platforms/amazonfireos/plugin.md b/docs/en/5.1.1/guide/platforms/amazonfireos/plugin.md
new file mode 100644
index 0000000..3fc5ca9
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/amazonfireos/plugin.md
@@ -0,0 +1,100 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS Plugins
+
+Follow the instructions provided in the Android Plugins Guide for an overview of developing custom plugins.
+
+## Echo Amazon Fire OS Plugin Example
+
+To match the JavaScript interface's _echo_ feature described in
+Application Plugins, use the `plugin.xml` to inject a `feature`
+specification to the local platform's `config.xml` file:
+
+    <platform name="amazon-fireos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Echo">
+                <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+            </feature>
+        </config-file>
+    </platform>
+
+Then add the following to the
+`src/org/apache/cordova/plugin/Echo.java` file:
+
+    package org.apache.cordova.plugin;
+
+    import org.apache.cordova.CordovaPlugin;
+    import org.apache.cordova.CallbackContext;
+
+    import org.json.JSONArray;
+    import org.json.JSONException;
+    import org.json.JSONObject;
+
+    /**
+     * This class echoes a string called from JavaScript.
+     */
+    public class Echo extends CordovaPlugin {
+
+        @Override
+        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+            if (action.equals("echo")) {
+                String message = args.getString(0);
+                this.echo(message, callbackContext);
+                return true;
+            }
+            return false;
+        }
+
+        private void echo(String message, CallbackContext callbackContext) {
+            if (message != null && message.length() > 0) {
+                callbackContext.success(message);
+            } else {
+                callbackContext.error("Expected one non-empty string argument.");
+            }
+        }
+    }
+
+If you want to reuse Android Plugin code for the Amazon Fire OS platform then modify the plugin.xml to point to the `android` specific source file. For example,
+
+    <platform name="amazon-fireos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Echo">
+                <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+            </feature>
+        </config-file>
+        <source-file src="src/android/Echo.java" target-dir="src/org/apache/cordova/plugin" />
+    </platform>
+
+If you want to write a customized plugin for the Amazon Fire OS platform then create a folder named `amazon` under your plugin src/ folder and modify the plugin.xml to point to the `amazon` specific source file. For example,
+
+    <platform name="amazon-fireos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Echo">
+                <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+            </feature>
+        </config-file>
+        <source-file src="src/amazon/Echo.java" target-dir="src/org/apache/cordova/plugin" />
+    </platform>
+
+## Using Amazon WebView in your plugin
+
+Cordova for Amazon Fire OS makes use of custom Amazon WebView that is built on the open-source Chromium project. It is GPU accelerated and optimized for fluid performance on Kindle Fire.
+
+To understand how to best use Amazon WebView in your project, check out the [Amazon Developer Portal](https://developer.amazon.com/sdk/fire/IntegratingAWV.html).
diff --git a/docs/en/5.1.1/guide/platforms/amazonfireos/webview.md b/docs/en/5.1.1/guide/platforms/amazonfireos/webview.md
new file mode 100644
index 0000000..8037b4f
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/amazonfireos/webview.md
@@ -0,0 +1,127 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS WebViews
+
+Beginning with 3.3.0, you can use Cordova as a component in Amazon Fire OS applications. Amazon Fire OS refers to this component as `CordovaWebView`. `CordovaWebView` extends Amazon WebView that is built on the open source Chromium Project. By leveraging this feature, your web apps can utilize the latest HTML5 web standards running in a modern web runtime engine.
+
+If you're unfamiliar with Amazon Fire OS, you should first familiarize
+yourself with the Amazon Fire OS Platform Guide and have the latest SDKs installed before you attempt the more unusual development option of embedding a WebView.
+
+## Prerequisites
+
+* Cordova 3.3.0 or greater
+
+* Android SDK updated to the latest SDK
+
+* Amazon WebView SDK
+
+## Guide to using CordovaWebView in a Amazon Fire OS Project
+
+1. To follow these instructions, make sure you have the latest Cordova
+   distribution. Download it from
+   [cordova.apache.org](http://cordova.apache.org) and unzip its
+   Amazon Fire OS package.
+   
+2. Download and expand the [Amazon WebView SDK](https://developer.amazon.com/sdk/fire/IntegratingAWV.html#installawv) , then copy the awv_interface.jar into `/framework/libs` directory. Create a libs/ folder if it doesn't exist.
+
+3. Navigate to the package's `/framework` directory and run
+   `ant jar`. It creates the Cordova `.jar` file, formed as
+   `/framework/cordova-x.x.x.jar`.
+
+4. Copy the `.jar` file into the Android project's `/libs` directory.
+
+5. Add the following to the application's `/res/xml/main.xml` file,
+   with the `layout_height`, `layout_width` and `id` modified to suit
+   the application:
+
+        <org.apache.cordova.CordovaWebView
+            android:id="@+id/tutorialView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+6. Modify your activity so that it implements the `CordovaInterface`.  You should implement the included methods.  You may wish to copy them from `/framework/src/org/apache/cordova/CordovaActivity.java`, or implement them on your own.  The code fragment below shows a basic application that uses the interface. Note how the referenced view id matches the `id` attribute specified in the XML fragment shown above:
+
+        public class CordovaViewTestActivity extends Activity implements CordovaInterface {
+            CordovaWebView cwv;
+            /* Called when the activity is first created. */
+            @Override
+            public void onCreate(Bundle savedInstanceState) {
+                super.onCreate(savedInstanceState);
+                setContentView(R.layout.main);
+                cwv = (CordovaWebView) findViewById(R.id.tutorialView);
+                Config.init(this);
+                cwv.loadUrl(Config.getStartUrl());
+            }
+
+If you use the camera, you should also implement this:
+
+        @Override
+        public void setActivityResultCallback(CordovaPlugin plugin) {
+            this.activityResultCallback = plugin;
+        }
+        /**
+         * Launch an activity for which you would like a result when it finished. When this activity exits,
+         * your onActivityResult() method is called.
+         *
+         * @param command           The command object
+         * @param intent            The intent to start
+         * @param requestCode       The request code that is passed to callback to identify the activity
+         */
+        public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
+            this.activityResultCallback = command;
+            this.activityResultKeepRunning = this.keepRunning;
+
+            // If multitasking turned on, then disable it for activities that return results
+            if (command != null) {
+                this.keepRunning = false;
+            }
+
+            // Start activity
+            super.startActivityForResult(intent, requestCode);
+        }
+
+        @Override
+        /**
+         * Called when an activity you launched exits, giving you the requestCode you started it with,
+         * the resultCode it returned, and any additional data from it.
+         *
+         * @param requestCode       The request code originally supplied to startActivityForResult(),
+         *                          allowing you to identify who this result came from.
+         * @param resultCode        The integer result code returned by the child activity through its setResult().
+         * @param data              An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
+         */
+        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+            super.onActivityResult(requestCode, resultCode, intent);
+            CordovaPlugin callback = this.activityResultCallback;
+            if (callback != null) {
+                callback.onActivityResult(requestCode, resultCode, intent);
+            }
+        }
+
+Finally, remember to add the thread pool, otherwise the plugins have no threads to run on:
+
+        @Override
+        public ExecutorService getThreadPool() {
+            return threadPool;
+        }
+
+7. Copy your application's HTML and JavaScript files to your Amazon Fire OS project's `/assets/www` directory.
+
+8. Copy `config.xml` from `/framework/res/xml` to your project's `/res/xml` directory.
diff --git a/docs/en/5.1.1/guide/platforms/android/config.md b/docs/en/5.1.1/guide/platforms/android/config.md
new file mode 100644
index 0000000..77ea521
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/android/config.md
@@ -0,0 +1,122 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Android Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to Android builds. See [The config.xml
+File](config_ref_index.md.html#The%20config.xml%20File) for information on global configuration options.
+
+- `KeepRunning` (boolean, defaults to `true`): Determines whether the
+  application stays running in the background even after a `pause`
+  event fires. Setting this to `false` does not kill the app after a
+  `pause` event, but simply halts execution of code within the cordova
+  webview while the app is in the background.
+
+        <preference name="KeepRunning" value="false"/>
+
+- `LoadUrlTimeoutValue` (number in milliseconds, default to `20000`,
+  20 seconds): When loading a page, the amount of time to wait before throwing
+  a timeout error. This example specifies 10 seconds rather than 20:
+
+        <preference name="LoadUrlTimeoutValue" value="10000"/>
+
+- `SplashScreen` (string, defaults to `splash`): The name of the file minus
+  its extension in the `res/drawable` directory.  Various assets must share
+  this common name in various subdirectories.
+
+        <preference name="SplashScreen" value="mySplash"/>
+
+- `SplashScreenDelay` (number in milliseconds, defaults to `3000`): The amount
+  of time the splash screen image displays.
+
+        <preference name="SplashScreenDelay" value="10000"/>
+
+- `InAppBrowserStorageEnabled` (boolean, defaults to `true`): Controls
+  whether pages opened within an InAppBrowser can access the same
+  localStorage and WebSQL storage as pages opened with the default
+  browser.
+
+        <preference name="InAppBrowserStorageEnabled" value="true"/>
+
+- `LoadingDialog` (string, defaults to `null`): If set, displays a dialog with
+  the specified title and message, and a spinner, when loading the first
+  page of an application. The title and message are separated by a comma
+  in this value string, and that comma is removed before the dialog is
+  displayed.
+
+        <preference name="LoadingDialog" value="My Title,My Message"/>
+
+- `LoadingPageDialog` (string, defaults to `null`): The same as `LoadingDialog`,
+  but for loading every page after the first page in the application.
+
+        <preference name="LoadingPageDialog" value="My Title,My Message"/>
+
+- `ErrorUrl` (URL, defaults to `null`):
+  If set, will display the referenced page upon an error in the application
+  instead of a dialog with the title "Application Error".
+
+        <preference name="ErrorUrl" value="myErrorPage.html"/>
+
+- `ShowTitle` (boolean, defaults to `false`): Show the title at the top
+  of the screen.
+
+        <preference name="ShowTitle" value="true"/>
+
+- `LogLevel` (string, defaults to `ERROR`): Sets the minimum log level
+  through which log messages from your application will be filtered. Valid
+  values are `ERROR`, `WARN`, `INFO`, `DEBUG`, and `VERBOSE`.
+
+        <preference name="LogLevel" value="VERBOSE"/>
+
+- `SetFullscreen` (boolean, defaults to `false`): Same as the `Fullscreen`
+  parameter in the global configuration of this xml file. This Android-specific
+  element is deprecated in favor of the global `Fullscreen` element, and will
+  be removed in a future version.
+
+- `AndroidLaunchMode` (string, defaults to `singleTop`): Sets the Activity
+  `android:launchMode` attribute.  This changes what happens when the app is
+  launched from app icon or intent and is already running.
+  Valid values are `standard`, `singleTop`, `singleTask`, `singleInstance`.
+
+        <preference name="AndroidLaunchMode" value="singleTop"/>
+
+- `DefaultVolumeStream` (string, defaults to `default`, added in cordova-android 3.7.0): Sets which volume
+  the hardware volume buttons link to. By default this is "call" for phones
+  and "media" for tablets. Set this to "media" to have your app's volume
+  buttons always change the media volume. Note that when using Cordova's
+  media plugin, the volume buttons will dynamically change to controlling
+  the media volume when any Media objects are active.
+
+- `OverrideUserAgent` (string, not set by default):
+  If set, the value will replace the old UserAgent of webview.
+  It is helpful to identify the request from app/browser when requesting remote pages.
+  Use with caution, this may causes compitiable issue with web servers.
+  For most cases, use AppendUserAgent instead.
+
+        <preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
+
+- `AppendUserAgent` (string, not set by default):
+  If set, the value will append to the end of old UserAgent of webview.
+  When using with OverrideUserAgent, this value will be ignored.
+
+        <preference name="OverrideUserAgent" value="My Browser" />
+
+
diff --git a/docs/en/5.1.1/guide/platforms/android/index.md b/docs/en/5.1.1/guide/platforms/android/index.md
new file mode 100644
index 0000000..66a7baa
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/android/index.md
@@ -0,0 +1,304 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Android Platform Guide
+
+This guide shows how to set up your SDK environment to deploy Cordova
+apps for Android devices, and how to optionally use Android-centered
+command-line tools in your development workflow.  You need to install
+the Android SDK regardless of whether you want to use these
+platform-centered shell tools or cross-platform Cordova CLI for
+development. For a comparison of the two development paths, see the
+Overview.  For details on the CLI, see The Command-Line Interface.
+
+## Requirements and Support
+
+Cordova for Android requires the Android SDK which could be installed
+on OS X, Linux or Windows operation system. See the Android SDK's
+[System Requirements](http://developer.android.com/sdk/index.html#Requirements).
+
+Cordova supports Android 4.0.x (starting with Android API level 14)
+and higher.  As a general rule, Android versions become unsupported by Cordova as
+they dip below 5% on Google's
+[distribution dashboard](http://developer.android.com/about/dashboards/index.html).
+Android versions earlier than API level 10, and the 3.x versions (Honeycomb,
+API levels 11-13) fall significantly below that 5% threshold.
+
+## Install Cordova Shell Tools
+
+If you want to use Cordova's Android-centered shell tools in
+conjunction with the SDK, download Cordova from
+[cordova.apache.org](http://cordova.apache.org). Otherwise ignore this
+section if you plan to use the cross-platform CLI tool described in
+The Command-Line Interface.
+
+The Cordova download contains separate archives for each platform. Be
+sure to expand the appropriate archive, `android` in this case, within
+an empty directory.  The relevant executible utilities are available
+in the top-level `bin` directory. (Consult the __README__ file if
+necessary for more detailed directions.)
+
+These shell tools allow you to create, build, and run Android apps.
+For information on the additional command-line interface that enables
+plugin features across all platforms, see Using Plugman to Manage
+Plugins. See Application Plugins for details on how to develop
+plugins.
+
+## Install the Java Development Kit (JDK)
+
+Install [Java Development Kit (JDK) 7](http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html)
+or later. 
+
+When installing on Windows you also need to set `JAVA_HOME` Environment Variable
+according to JDK installation path (for example, C:\Program Files\Java\jdk1.7.0_75).
+
+## Install the Android SDK
+
+Install the [Android Stand-alone SDK Tools](http://developer.android.com/sdk/installing/index.html?pkg=tools) or [Android Studio](http://developer.android.com/sdk/installing/index.html?pkg=studio). Procceed with `Android Studio` if you plan 
+developing new Cordova for Android plugins or using native tools to
+run and debug Android platform. Otherwise, `Android Stand-alone SDK Tools`
+are enough to build and deploy Android application.
+
+Detailed installation instructions are available as part of installation
+links above.
+
+For Cordova command-line tools to work, or the CLI that is based upon
+them, you need to include the SDK's `tools` and `platform-tools`
+directories in your `PATH`.  On a Mac, you can use a text editor to
+create or modify the `~/.bash_profile` file, adding a line such as the
+following, depending on where the SDK installs:
+
+        export PATH=${PATH}:/Development/android-sdk/platform-tools:/Development/android-sdk/tools
+
+This line in `~/.bash_profile` exposes these tools in newly opened terminal
+windows. If your terminal window is already open in OSX, or to avoid a logout/login
+on Linux, run this to make them available in the current terminal window:
+
+        $ source ~/.bash_profile
+
+To modify the `PATH` environment on Windows:
+
+1. Click on the __Start__ menu in the lower-left corner of the desktop,
+   right-click on __Computer__, then select __Properties__.
+
+1. Select __Advanced System Settings__ in the column on the left.
+
+1. In the resulting dialog box, press __Environment Variables__.
+
+1. Select the __PATH__ variable and press __Edit__.
+
+1. Append the following to the `PATH` based on where you installed the
+   SDK, for example:
+
+        ;C:\Development\android-sdk\platform-tools;C:\Development\android-sdk\tools
+
+1. Save the value and close both dialog boxes.
+
+## Install SDK Packages
+
+Open Android SDK Manager (for example, via terminal: `android`) and install:
+
+1. Android 5.1.1 (API 22) platform SDK
+1. Android SDK Build-tools version 19.1.0 or higher
+1. Android Support Repository (Extras)
+
+See [Installing SDK Packages](http://developer.android.com/sdk/installing/adding-packages.html)
+for more details.
+
+## Configure an Emulator
+
+Android sdk doesn't provide any default emulator instance by default. You can 
+create a new one by running `android` on the command line.
+The press __Tools &rarr; Manage AVDs__ (Android Virtual Devices),
+then choose any item from __Device Definitions__ in the resulting dialog
+box:
+
+![](img/guide/platforms/android/asdk_device.png)
+
+Press __Create AVD__, optionally modifying the name, then press __OK__
+to accept the changes:
+
+![](img/guide/platforms/android/asdk_newAVD.png)
+
+The AVD then appears in the __Android Virtual Devices__ list:
+
+![](img/guide/platforms/android/asdk_avds.png)
+
+To open the emulator as a separate application, select the AVD and
+press __Start__. It launches much as it would on the device, with
+additional controls available for hardware buttons:
+
+![](img/guide/platforms/android/asdk_emulator.png)
+
+
+For a faster experience, you can use the `Virtual Machine Acceleration` to improve 
+the execution speed.
+Many modern CPUs provide extensions to execute Virtual Machines more efficiently.
+Before attempting to use this type of acceleration, you need to determine if your 
+current development system's CPU, supports one the following virtualization technologies:
+
+* __Intel Virtualization Technology__ (VT-x, vmx) &rarr; [Intel VT-x supported processor list](http://ark.intel.com/products/virtualizationtechnology)
+* __AMD Virtualization__ (AMD-V, SVM), only supported for Linux (Since May 2006, all CPUs AMD include AMD-V, except Sempron).
+
+Another way to find out if your Intel processor supports VT-x Technology, it's by executing the 
+`Intel Processor Identification Utility`, for `Windows`you can download it from the Intel [Download Center](https://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=1881&DwnldID=7838),
+or you can use the [booteable utility](https://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=1881&DwnldID=7840&lang=eng), which is `OS Independent`.
+
+After install and execute the `Intel Processor Identification Utility` over Windows, you will get the following window, 
+in order to check if your CPU supports the Virtualization Technologies:
+
+![](img/guide/platforms/android/intel_pid_util_620px.png)
+
+In order to speed up the emulator, you need to download and install one or more `Intel x86 Atom` System Images, 
+as well as the `Intel Hardware Accelerated Execution Manager (HAXM)`.
+
+Open your Android SDK Manager, and select the `Intel x86 Atom` System Image, for whichever version that you want to test. Then go to `Extras` 
+and select `Intel x86 Emulator Accelerator (HAXM)`, and install those packages:
+
+![](img/guide/platforms/android/asdk_man_intel_image_haxm.png)
+
+After download, run the Intel installer, which is available within your
+Android SDK at `extras/intel/Hardware_Accelerated_Execution_Manager`. 
+__Note__:`If you have any problems installing the package, you can find more information and step by step guidance check this` 
+[Intel Article](http://software.intel.com/en-us/android/articles/speeding-up-the-android-emulator-on-intel-architecture).
+
+1. Install one or more `Intel x86 Atom` System Images as well as the
+   `Intel Hardware Accelerated Execution Manager`, available under
+   __Extras__.
+
+1. Run the Intel installer, which is available within your Android SDK
+   at `extras/intel/Hardware_Accelerated_Execution_Manager`.
+
+1. Create a new AVD with the target set to an Intel image.
+
+1. When starting the emulator, ensure there are no error messages
+   indicating a failure to load HAX modules.
+
+## Create a New Project
+
+At this point, to create a new project you can choose between the
+cross-platform CLI tool described in The Command-Line Interface, or
+the set of Android-specific shell tools. From within a source-code
+directory, here's the CLI approach:
+
+        $ cordova create hello com.example.hello HelloWorld
+        $ cd hello
+        $ cordova platform add android
+        $ ccordova prepare              # or "cordova build"
+
+Here's the corresponding lower-level shell-tool approach for both Unix
+and Windows:
+
+        $ /path/to/cordova-android/bin/create /path/to/new/hello com.example.hello HelloWorld
+        C:\path\to\cordova-android\bin\create.bat C:\path\to\new\hello com.example.hello HelloWorld
+
+## Build the Project
+
+If you are using the CLI in development, the project directory's
+top-level `www` directory contains the source files. Run any of
+these within the project directory to rebuild the app:
+
+        $ cordova build                   # build all platforms that were added
+        $ cordova build android           # build debug for only Android
+        $ cordova build android --debug   # build debug for only Android
+        $ cordova build android --release # build release for only Android
+
+If you are using the Android-specific shell tools in development,
+there is a different approach.  Once you generate the project, the
+default app's source is available in the `assets/www` subdirectory.
+Subsequent commands are available in its `cordova` subdirectory.
+
+The `build` command cleans project files and rebuilds the app. Here is
+the syntax for both Mac and Windows. The first pair of examples
+generate debugging information, and the second builds the apps for
+release:
+
+        $ /path/to/project/cordova/build --debug
+        C:\path\to\project\cordova\build.bat --debug
+        
+        $ /path/to/project/cordova/build --release
+        C:\path\to\project\cordova\build.bat --release
+
+## Deploy the app
+
+You can use the `cordova` CLI utility to deploy the
+application to the emulator or the device from the command line:
+
+        $ cordova emulate android       #to deploy the app on a default android emulator
+        $ cordova run android --device  #to deploy the app on a connected device
+
+Otherwise, use the alternate shell interface:
+
+        $ /path/to/project/cordova/run --emulator
+        $ /path/to/project/cordova/run --device
+
+You can use __cordova run android --list__ to see all available targets and 
+__cordova run android --target=target_name__ to run application on a specific 
+device or emulator (for example,  `cordova run android --target="Nexus4_emulator"`).
+
+You can also use __cordova run --help__ to see additional build and run
+options.
+
+This pushes the app to the home screen and launches it:
+
+![](img/guide/platforms/android/emulator2x.png)
+
+When you `run` the app, you also `build` it. You can append additional
+`--debug`, `--release`, and `--nobuild` flags to control how it is
+built, or even whether a rebuild is necessary:
+
+        $ /path/to/project/cordova/run --emulator --nobuild
+
+## Other Commands
+
+The following generates a detailed log of the app as it runs:
+
+        $ /path/to/project/cordova/log
+        C:\path\to\project\cordova\log.bat
+
+The following cleans the project files:
+
+        $ /path/to/project/cordova/clean
+        C:\path\to\project\cordova\clean.bat
+
+## Open a New Project in the SDK
+
+Once android platform is added to your project, you can open it from 
+within [Android Studio](http://developer.android.com/sdk/installing/index.html?pkg=studio):
+
+1. Launch the __Android Studio__ application.
+
+1. Select __Import Project (Eclipse ADT, Gradle, etc)__.
+
+  ![](img/guide/platforms/android/asdk_import_project.png)
+
+1. Select location where android platform is stored (`your/project/platforms/android`).
+  
+  ![](img/guide/platforms/android/asdk_import_select_location.png)
+
+1. For the `Gradle Sync` question you can simply answer __Yes__.
+
+You are all set now and can build and run the app directly from `Android Studio`.
+
+![](img/guide/platforms/android/asdk_import_done.png)
+
+See [Android Studio Overview](http://developer.android.com/tools/studio/index.html) and
+And [Building and Running from Android Studio](http://developer.android.com/tools/building/building-studio.html) for more details.
+
+
diff --git a/docs/en/5.1.1/guide/platforms/android/plugin.md b/docs/en/5.1.1/guide/platforms/android/plugin.md
new file mode 100644
index 0000000..fb83ab8
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/android/plugin.md
@@ -0,0 +1,240 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Android Plugins
+
+This section provides details for how to implement native plugin code
+on the Android platform. Before reading this, see Application Plugins
+for an overview of the plugin's structure and its common JavaScript
+interface. This section continues to demonstrate the sample _echo_
+plugin that communicates from the Cordova webview to the native
+platform and back.  For another sample, see also the comments in
+[CordovaPlugin.java](https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaPlugin.java).
+
+Android plugins are based on Cordova-Android, which consists of an
+Android WebView with hooks attached to it.  Plugins are represented as
+class mappings in the `config.xml` file.  A plugin consists of at
+least one Java class that extends the `CordovaPlugin` class,
+overriding one of its `execute` methods. As best practice, the plugin
+should also handle `pause` and `resume` events, along with any message
+passing between plugins.  Plugins with long-running requests,
+background activity such as media playback, listeners, or internal
+state should implement the `onReset()` method as well. It executes
+when the `WebView` navigates to a new page or refreshes, which reloads
+the JavaScript.
+
+## Plugin Class Mapping
+
+The plugin's JavaScript interface uses the `cordova.exec` method as
+follows:
+
+        exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
+
+This marshals a request from the WebView to the Android native side,
+effectively calling the `action` method on the `service` class, with
+additional arguments passed in the `args` array.
+
+Whether you distribute a plugin as Java file or as a _jar_ file of its
+own, the plugin must be specified in your Cordova-Android
+application's `res/xml/config.xml` file. See Application Plugins for
+more information on how to use the `plugin.xml` file to inject this
+`feature` element:
+
+        <feature name="<service_name>">
+            <param name="android-package" value="<full_name_including_namespace>" />
+        </feature>
+
+The service name matches the one used in the JavaScript `exec` call.
+The value is the Java class's fully qualified namespace identifier.
+Otherwise, the plugin may compile but still be unavailable to Cordova.
+
+## Plugin Initialization and Lifetime
+
+One instance of a plugin object is created for the life of each
+`WebView`. Plugins are not instantiated until they are first
+referenced by a call from JavaScript, unless `<param>` with an `onload`
+`name` attribute is set to `"true"` in `config.xml`. E.g.:
+
+    <feature name="Echo">
+        <param name="android-package" value="<full_name_including_namespace>" />
+        <param name="onload" value="true" />
+    </feature>
+
+Plugins should use the `initialize` method for their start-up logic.
+
+    @Override
+    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
+        super.initialize(cordova, webView);
+        // your init code here
+    }
+
+## Writing an Android Java Plugin
+
+A JavaScript call fires off a plugin request to the native side, and
+the corresponding Java plugin is mapped properly in the `config.xml`
+file, but what does the final Android Java Plugin class look like?
+Whatever is dispatched to the plugin with JavaScript's `exec` function
+is passed into the plugin class's `execute` method. Most `execute`
+implementations look like this:
+
+        @Override
+        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+            if ("beep".equals(action)) {
+                this.beep(args.getLong(0));
+                callbackContext.success();
+                return true;
+            }
+            return false;  // Returning false results in a "MethodNotFound" error.
+        }
+
+The JavaScript `exec` function's `action` parameter corresponds to a
+private class method to dispatch with optional parameters.
+
+When catching exceptions and returning errors, it's important for the
+sake of clarity that errors returned to JavaScript match Java's
+exception names as much as possible.
+
+## Threading
+
+The plugin's JavaScript does _not_ run in the main thread of the
+`WebView` interface; instead, it runs on the `WebCore` thread, as
+does the `execute` method.  If you need to interact with the user
+interface, you should use the following variation:
+
+        @Override
+        public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
+            if ("beep".equals(action)) {
+                final long duration = args.getLong(0);
+                cordova.getActivity().runOnUiThread(new Runnable() {
+                    public void run() {
+                        ...
+                        callbackContext.success(); // Thread-safe.
+                    }
+                });
+                return true;
+            }
+            return false;
+        }
+
+Use the following if you do not need to run on the main interface's
+thread, but do not want to block the `WebCore` thread either:
+
+        @Override
+        public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
+            if ("beep".equals(action)) {
+                final long duration = args.getLong(0);
+                cordova.getThreadPool().execute(new Runnable() {
+                    public void run() {
+                        ...
+                        callbackContext.success(); // Thread-safe.
+                    }
+                });
+                return true;
+            }
+            return false;
+        }
+
+## Echo Android Plugin Example
+
+To match the JavaScript interface's _echo_ feature described in
+Application Plugins, use the `plugin.xml` to inject a `feature`
+specification to the local platform's `config.xml` file:
+
+        <platform name="android">
+            <config-file target="config.xml" parent="/*">
+                <feature name="Echo">
+                    <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+                </feature>
+            </config-file>
+        </platform>
+
+Then add the following to the
+`src/org/apache/cordova/plugin/Echo.java` file:
+
+        package org.apache.cordova.plugin;
+
+        import org.apache.cordova.CordovaPlugin;
+        import org.apache.cordova.CallbackContext;
+
+        import org.json.JSONArray;
+        import org.json.JSONException;
+        import org.json.JSONObject;
+
+        /**
+         * This class echoes a string called from JavaScript.
+         */
+        public class Echo extends CordovaPlugin {
+
+            @Override
+            public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+                if (action.equals("echo")) {
+                    String message = args.getString(0);
+                    this.echo(message, callbackContext);
+                    return true;
+                }
+                return false;
+            }
+
+            private void echo(String message, CallbackContext callbackContext) {
+                if (message != null && message.length() > 0) {
+                    callbackContext.success(message);
+                } else {
+                    callbackContext.error("Expected one non-empty string argument.");
+                }
+            }
+        }
+
+The necessary imports at the top of the file extends the class from
+`CordovaPlugin`, whose `execute()` method it overrides to receive
+messages from `exec()`.  The `execute()` method first tests the value
+of `action`, for which in this case there is only one valid `echo`
+value.  Any other action returns `false` and results in an
+`INVALID_ACTION` error, which translates to an error callback invoked
+on the JavaScript side.
+
+Next, the method retrieves the echo string using the `args` object's
+`getString` method, specifying the first parameter passed to the
+method.  After the value is passed to a private `echo` method, it is
+parameter-checked to make sure it is not `null` or an empty string, in
+which case `callbackContext.error()` invokes JavaScript's error
+callback.  If the various checks pass, the `callbackContext.success()`
+passes the original `message` string back to JavaScript's success
+callback as a parameter.
+
+## Android Integration
+
+Android features an `Intent` system that allows processes to
+communicate with each other.  Plugins have access to a
+`CordovaInterface` object, which can access the Android `Activity`
+that runs the application.  This is the `Context` required to launch a
+new Android `Intent`.  The `CordovaInterface` allows plugins to start
+an `Activity` for a result, and to set the callback plugin for when
+the `Intent` returns to the application.
+
+As of Cordova 2.0, Plugins can no longer directly access the
+`Context`, and the legacy `ctx` member is deprecated. All `ctx`
+methods exist on the `Context`, so both `getContext()` and
+`getActivity()` can return the required object.
+
+## Debugging Android Plugins
+
+Eclipse allows you to debug plugins as Java source included in the
+project.  Only the latest version of the Android Developer Tools
+allows you to attach source code to _JAR_ dependencies, so this
+feature is not yet fully supported.
diff --git a/docs/en/5.1.1/guide/platforms/android/tools.md b/docs/en/5.1.1/guide/platforms/android/tools.md
new file mode 100644
index 0000000..2e271e2
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/android/tools.md
@@ -0,0 +1,215 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Android Shell Tool Guide
+
+This guide shows how to use Cordova's set of platform-centered shell
+tools to develop Android apps. This development path, discussed in the
+Overview, may offer you a greater range of development options than
+the cross-platform CLI tool described in The Command-Line Interface.
+For example, you need to use shell tools when deploying a custom
+Cordova WebView alongside native components.  Before using either
+development path, you must first configure the Android SDK environment
+as described in the Android Platform Guide.
+
+To enable shell tools for Android, download Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand each you wish to target,
+`android` in this case. The relevant tools are typically available in
+the top-level `bin` directory, otherwise consult the __README__ file
+for more detailed directions.
+
+These tools allow you to create, build, and run Android apps.  For
+information on the additional command-line interface that enables
+plugin features across all platforms, see Using Plugman to Manage
+Plugins. See Application Plugins for details on how to develop
+plugins.
+
+## Create a Project
+
+Run the `create` command, specifying the existing path to the project,
+the reverse-domain-style package identifier, and the app's display
+name.  Here is the syntax for both Mac/Linux and Windows:
+
+        $ /path/to/cordova-android/bin/create /path/to/project com.example.project_name ProjectName
+
+        C:\>\path\to\cordova-android\bin\create.bat \path\to\project com.example.project_name ProjectName
+
+## Build
+
+This cleans then builds a project.
+
+Debug, on Mac/Linux or Windows:
+
+        $ /path/to/project/cordova/build --debug
+
+        C:\>\path\to\project\cordova\build.bat --debug
+
+Release, on Mac/Linux or Windows:
+
+        $ /path/to/project/cordova/build --release
+
+        C:\>\path\to\project\cordova\build.bat --release
+
+## Run the App
+
+The `run` command accepts the following _optional_ parameters:
+
+  * Target specification. This includes `--emulator`, `--device`, or `--target=<targetID>`.
+
+  * Build specification. This includes `--debug`, `--release`, or `--nobuild`.
+
+        $ /path/to/project/cordova/run [Target] [Build]
+
+        C:\>\path\to\project\cordova\run.bat [Target] [Build]
+
+Make sure you create at least one Android Virtual Device, otherwise
+you're prompted to do so with the `android` command.  If more than one
+AVD is available as a target, you're prompted to select one. By
+default the `run` command detects a connected device, or a currently
+running emulator if no device is found.
+
+## Signing the App
+
+You can review Android app signing requirements here: http://developer.android.com/tools/publishing/app-signing.html
+
+To sign an app, you need the following parameters:
+  * Keystore (`--keystore`): Path to a binary file which can hold a set of keys.
+  * Keystore password (`--storePassword`): Password to the keystore
+  * Alias (`--alias`): The id specifying the private key used for singing.
+  * Password (`--password`): Password for the private key specified.
+  * Type of the keystore (`--keystoreType`): pkcs12, jks (Default: auto-detect based on file extension)
+These parameters can be specified using the command line arguments above to `build` or `run` scripts.
+
+Alternatively, you could specify them in a build configuration file (build.json) using (`--buildConfig`) argument. Here's a sample of a build configuration file:
+
+    {
+         "android": {
+             "debug": {
+                 "keystore": "..\android.keystore",
+                 "storePassword": "android",
+                 "alias": "mykey1",
+                 "password" : "password",
+                 "keystoreType": ""
+             },
+             "release": {
+                 "keystore": "..\android.keystore",
+                 "storePassword": "",
+                 "alias": "mykey2",
+                 "password" : "password",
+                 "keystoreType": ""
+             }
+         }
+     }
+
+For release signing, passwords can be excluded and the build system will issue a prompt asking for the password.
+
+There is also support to mix and match command line arguments and parameters in build.json file. Values from the command line arguments will get precedence. This can be useful for specifying passwords on the command line. 
+
+## Logging
+
+        $ /path/to/project/cordova/log
+
+        C:\>\path\to\project\cordova\log.bat
+
+## Cleaning
+
+        $ /path/to/project/cordova/clean
+
+        C:\>\path\to\project\cordova\clean.bat
+
+## Building with Gradle
+
+As of cordova-android@4.0.0, project build using [Gradle](http://www.gradle.org/).
+For instructions on building with ANT, refer to older versions of documentation.
+
+### Gradle Properties
+
+These [properties](http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html)
+can be set to customize the build:
+
+  * **cdvBuildMultipleApks** (default: false)
+
+  If this is set, then multiple APK files will be generated: One per native
+  platform supported by library projects (x86, ARM, etc). This can be important
+  if your project uses large native libraries, which can drastically increase
+  the size of the generated APK.
+
+  If not set, then a single APK will be generated which can be used on all devices.
+
+  * **cdvVersionCode**
+
+  Overrides the versionCode set in `AndroidManifest.xml`
+
+  * **cdvReleaseSigningPropertiesFile** (default: release-signing.properties)
+
+  Path to a .properties file that contains signing information for release builds.
+  The file should look like:
+  ```
+  storeFile=relative/path/to/keystore.p12
+  storePassword=SECRET1
+  storeType=pkcs12
+  keyAlias=DebugSigningKey
+  keyPassword=SECRET2
+  ```
+
+  `storePassword` and `keyPassword` are optional, and will be prompted for if omitted.
+
+  * **cdvDebugSigningPropertiesFile** (default: debug-signing.properties)
+
+  Same as cdvReleaseSigningPropertiesFile, but for debug builds. Useful when you need
+  to share a signing key with other developers.
+
+  * **cdvMinSdkVersion**
+
+  Overrides the value of `minSdkVersion` set in `AndroidManifest.xml`. Useful when
+  creating multiple APKs based on SDK version.
+
+  * **cdvBuildToolsVersion**
+
+  Override the automatically detected `android.buildToolsVersion` value.
+
+  * **cdvCompileSdkVersion**
+
+  Override the automatically detected `android.compileSdkVersion` value.
+
+
+### Extending build.gradle
+
+If you need to customize `build.gradle`, rather than edit directly, you should create
+a sibling file named `build-extras.gradle`. This file will be included by the main
+`build.gradle` when present. Here's an example:
+
+    # Example build-extras.gradle
+    # This file is included at the beginning of `build.gradle`
+    ext.cdvDebugSigningPropertiesFile = '../../android-debug-keys.properties'
+    # When set, this function allows code to run at the end of `build.gradle`
+    ext.postBuildExtras = {
+        android.buildTypes.debug.applicationIdSuffix = '.debug'
+    }
+
+Note that plugins can also include `build-extras.gradle` files via:
+
+    <framework src="some.gradle" custom="true" type="gradleReference" />
+
+### Example Build
+
+    export ORG_GRADLE_PROJECT_cdvMinSdkVersion=14
+    cordova build android -- --gradleArg=-PcdvBuildMultipleApks=true
+
diff --git a/docs/en/5.1.1/guide/platforms/android/upgrade.md b/docs/en/5.1.1/guide/platforms/android/upgrade.md
new file mode 100644
index 0000000..c4c208b
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/android/upgrade.md
@@ -0,0 +1,518 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading Android
+
+This guide shows how to modify Android projects to upgrade from older versions of Cordova.
+Most of these instructions apply to projects created with an older set
+of command-line tools that precede the `cordova` CLI utility. See The Command-Line Interface for information how to update the
+version of the CLI.
+
+## Upgrading to 4.0.0
+
+There are specific upgrade steps required to take advantage of the significant
+changes in 4.0.0.  First, the common upgrade steps are needed as below.
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update android` in your existing projects.
+
+### Upgrading the Whitelist
+All whitelist functionality is now implemented via plugin.  Without a plugin,
+your app is no longer protected by a whitelist after upgrading to 4.0.0.  Cordova
+has two whitelist plugins, which provide different levels of protection.
+
+1. The `cordova-plugin-whitelist` plugin *(RECOMMENDED)*
+  * This plugin is highly recommended, as it is more secure and configurable
+    than the whitelist in previous versions
+  * See [cordova-plugin-whitelist](https://github.com/apache/cordova-plugin-whitelist)
+    for details on the configuration changes required
+  * Run: `cordova plugin add cordova-plugin-crosswalk-webview`
+
+2. The `cordova-plugin-legacy-whitelist` plugin
+  * This plugin provides the same whitelist behaviour as previous versions. See
+    [cordova-plugin-legacy-whitelist](https://github.com/apache/cordova-plugin-legacy-whitelist)
+  * No configuration changes are required, but it provides less protection than
+    the recommended plugin
+  * Run: `cordova plugin add cordova-plugin-legacy-whitelist`
+
+### Using the Crosswalk WebView
+By default, your app will continue to use the system WebView provided by the
+device.  If you wish to use the Crosswalk WebView instead, simply add the
+Crosswalk plugin:
+
+    cordova plugin add cordova-plugin-crosswalk-webview
+
+Upon adding the plugin, your app will get the Crosswalk WebView installed and
+configured correctly.
+
+### Upgrading to the Splashscreen Plugin
+If your app makes use of a splash screen, that functionality has been moved to
+a plugin.  The configuration options for splash screens are unchanged.  The only
+upgrade step required is to add the plugin:
+
+    cordova plugin add cordova-plugin-splashscreen
+
+## Upgrading to 3.7.1 from 3.6.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update android` in your existing projects.
+
+
+## Upgrading to 3.3.0 from 3.2.0
+
+Follow the same instructions as for `3.2.0`.
+
+Starting with 3.3.0, the Cordova runtime is now compiled as an Android Library
+instead of a Jar. This should have no effect for command-line usage, but IDE
+users will need to import the newly added `MyProject-CordovaLib` project into
+their workspace.
+
+## Upgrading to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update android`
+        
+For projects not created with the cordova CLI, run:
+
+        bin/update <project_path>
+
+**WARNING:**  On Android 4.4 - Android 4.4.3, creating a file input element with type="file" will not open the file picker dialog.
+This is a regression with Chromium on Android and the problem can be reproduced in the standalone Chrome browser on Android (see http://code.google.com/p/android/issues/detail?id=62220)  The suggested workaround is to use the FileTransfer and File plugins for Android 4.4. You can listen for an onClick event from the input type="file" and then pop up a file picker UI. In order to tie the form data with the upload, you can use JavaScript to attach form values to the multi-part POST request that FileTransfer makes.
+
+
+## Upgrading to 3.1.0 from 3.0.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update android`
+        
+For projects not created with the cordova CLI, run:
+
+        bin/update <project_path>
+        
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms the cordova project, for example: `cordova
+   platform add android`.
+
+3. Copy the contents of your project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy any native assets from your old project into the appropriate
+   directories under `platforms/android`: this directory is where your
+   native cordova-android project exists.
+
+5. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+## Upgrade to 3.0.0 from 2.9.0
+
+1. Create a new Apache Cordova Android project.
+
+2. Copy the contents of the `www` directory to the new project.
+
+3. Copy any native Android assets from the `res` directory to the new project.
+
+4. Copy over any plugins you installed from the `src` subdirectories into the new project.
+
+5. Make sure to upgrade any deprecated `<plugin>` references from your old `config.xml` file to the new `<feature>` specification.
+
+6. Update any references to the `org.apache.cordova.api` package to be `org.apache.cordova`.
+
+   __NOTE__: all core APIs have been removed and must be installed as plugins. Please see the Using Plugman to Manage Plugins Guide for details.
+
+## Upgrade to 2.9.0 from 2.8.0
+
+1. Run `bin/update <project_path>`.
+
+## Upgrade to 2.8.0 from 2.7.0
+
+1. Remove `cordova-2.7.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.8.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+<!-- SS Eclipse -->
+
+4. Copy the new `cordova.js` into your project.
+
+5. Update your HTML to use the new `cordova.js` file.
+
+6. Copy the `res/xml/config.xml` file to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.7.0 from 2.6.0
+
+1. Remove `cordova-2.6.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.7.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.7.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.7.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.6.0 from 2.5.0
+
+1. Remove `cordova-2.5.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.6.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.6.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+Run `bin/update <project>` with the project path listed in the Cordova Source directory.
+
+## Upgrade to 2.5.0 from 2.4.0
+
+1. Remove `cordova-2.4.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.5.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.5.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.4.0 from 2.3.0
+
+1. Remove `cordova-2.3.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.4.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.4.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.4.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.3.0 from 2.2.0
+
+1. Remove `cordova-2.2.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.3.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.3.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.3.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.2.0 from 2.1.0
+
+1. Remove `cordova-2.1.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.2.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.2.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.2.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.1.0 from 2.0.0
+
+1. Remove `cordova-2.0.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.1.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.1.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.1.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.0.0 from 1.9.0
+
+1. Remove `cordova-1.9.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.0.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.0.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.0.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+In the 2.0.0 release, the `config.xml` file combines and replaces
+`cordova.xml` and `plugins.xml`.  The old files are deprecated, and
+while they still work in 2.0.0, will stop working in a future release.
+
+## Upgrade to 1.9.0 from 1.8.1
+
+1. Remove `cordova-1.8.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.9.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.9.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.9.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+Due to the introduction of the `CordovaWebView` in the 1.9.0 release,
+third-party plugins may not work.  These plugins need to get a context
+from the `CordovaInterface` using `getContext()` or `getActivity()`.
+If you are not an experienced Android developer, please contact the
+plugin maintainer and add this task to their bug tracker.
+
+## Upgrade to 1.8.0 from 1.8.0
+
+1. Remove `cordova-1.8.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.8.1.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.8.1.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.8.1.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.8.0 from 1.7.0
+
+1. Remove `cordova-1.7.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.8.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.8.0 from 1.7.0
+
+1. Remove `cordova-1.7.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.8.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.7.0 from 1.6.1
+
+1. Remove `cordova-1.6.1.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.7.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.7.0.js` into your project.
+
+5. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.6.1 from 1.6.0
+
+1. Remove `cordova-1.6.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.6.1.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.6.1.js` into your project.
+
+5. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.6.0 from 1.5.0
+
+1. Remove `cordova-1.5.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.6.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.6.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Replace `res/xml/phonegap.xml` with `res/xml/cordova.xml` to match `framework/res/xml/cordova.xml`.
+
+## Upgrade to 1.5.0 from 1.4.0
+
+1. Remove `phonegap-1.4.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.5.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.5.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Replace `res/xml/phonegap.xml` with `res/xml/cordova.xml` to match `framework/res/xml/cordova.xml`.
+
+## Upgrade to 1.4.0 from 1.3.0
+
+1. Remove `phonegap-1.3.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.4.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.4.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.4.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Update `res/xml/phonegap.xml` to match `framework/res/xml/phonegap.xml`.
+
+## Upgrade to 1.3.0 from 1.2.0
+
+1. Remove `phonegap-1.2.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.3.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.3.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.2.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Update `res/xml/phonegap.xml` to match `framework/res/xml/phonegap.xml`.
+
+## Upgrade to 1.2.0 from 1.1.0
+
+1. Remove `phonegap-1.1.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.2.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.2.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.2.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Update `res/xml/phonegap.xml` to match `framework/res/xml/phonegap.xml`.
+
+## Upgrade to 1.1.0 from 1.0.0
+
+1. Remove `phonegap-1.0.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.1.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.1.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.1.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.0.0 from 0.9.6
+
+1. Remove `phonegap-0.9.6.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.0.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.0.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.0.0.js` file.
+
+6. Add the `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
diff --git a/docs/en/5.1.1/guide/platforms/android/webview.md b/docs/en/5.1.1/guide/platforms/android/webview.md
new file mode 100644
index 0000000..78801cc
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/android/webview.md
@@ -0,0 +1,131 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Android WebViews
+
+This guide shows how to embed a Cordova-enabled WebView component
+within a larger Android application. For details on how these
+components can communicate with each other, see Application Plugins.
+
+If you're unfamiliar with Android, you should first familiarize
+yourself with the Android Platform Guide and have the latest Android
+SDK installed before you attempt the more unusual development option
+of embedding a WebView.  Starting with Cordova 1.9, the Android
+platform relies on a `CordovaWebView` component, which builds on a
+legacy `CordovaActivity` component that pre-dates the 1.9 release.
+
+1. To follow these instructions, make sure you have the latest Cordova
+   distribution. Download it from
+   [cordova.apache.org](http://cordova.apache.org) and unzip its
+   Android package.
+
+1. Navigate to the Android package's `/framework` directory and run
+   `ant jar`. It creates the Cordova `.jar` file, formed as
+   `/framework/cordova-x.x.x.jar`.
+
+1. Copy the `.jar` file into the Android project's `/libs` directory.
+
+1. Add the following to the application's `/res/xml/main.xml` file,
+   with the `layout_height`, `layout_width` and `id` modified to suit
+   the application:
+
+        <org.apache.cordova.CordovaWebView
+            android:id="@+id/tutorialView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+1. Modify the activity so that it implements the `CordovaInterface`.
+   It should implement the included methods.  You may wish to copy
+   them from `/framework/src/org/apache/cordova/CordovaActivity.java`,
+   or else implement them on your own.  The following code fragment
+   shows a basic application that relies on the interface. Note how
+   the referenced view id matches the `id` attribute specified in the
+   XML fragment shown above:
+
+        public class CordovaViewTestActivity extends Activity implements CordovaInterface {
+            CordovaWebView cwv;
+            /* Called when the activity is first created. */
+            @Override
+            public void onCreate(Bundle savedInstanceState) {
+                super.onCreate(savedInstanceState);
+                setContentView(R.layout.main);
+                cwv = (CordovaWebView) findViewById(R.id.tutorialView);
+                Config.init(this);
+                cwv.loadUrl(Config.getStartUrl());
+            }
+
+1. If the application needs to use the camera, implement the
+   following:
+
+        @Override
+        public void setActivityResultCallback(CordovaPlugin plugin) {
+            this.activityResultCallback = plugin;
+        }
+        /**
+         * Launch an activity for which you would like a result when it finished. When this activity exits,
+         * your onActivityResult() method is called.
+         *
+         * @param command           The command object
+         * @param intent            The intent to start
+         * @param requestCode       The request code that is passed to callback to identify the activity
+         */
+        public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
+            this.activityResultCallback = command;
+            this.activityResultKeepRunning = this.keepRunning;
+            
+            // If multitasking turned on, then disable it for activities that return results
+            if (command != null) {
+                this.keepRunning = false;
+            }
+        
+            // Start activity
+            super.startActivityForResult(intent, requestCode);
+        }   
+    
+        @Override
+        /**
+         * Called when an activity you launched exits, giving you the requestCode you started it with,
+         * the resultCode it returned, and any additional data from it.
+         *
+         * @param requestCode       The request code originally supplied to startActivityForResult(),
+         *                          allowing you to identify who this result came from.
+         * @param resultCode        The integer result code returned by the child activity through its setResult().
+         * @param data              An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
+         */
+        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+            super.onActivityResult(requestCode, resultCode, intent);
+            CordovaPlugin callback = this.activityResultCallback;
+            if (callback != null) {
+                callback.onActivityResult(requestCode, resultCode, intent);
+            }
+        }
+
+1. Finally, remember to add the thread pool, otherwise plugins
+   have no threads on which to run:
+
+        @Override
+        public ExecutorService getThreadPool() {
+            return threadPool;
+        }
+
+1. Copy the application's HTML and JavaScript files to the Android
+   project's `/assets/www` directory.
+
+1. Copy the `config.xml` file from `/framework/res/xml` to the
+   project's `/res/xml` directory.
diff --git a/docs/en/5.1.1/guide/platforms/blackberry/upgrade.md b/docs/en/5.1.1/guide/platforms/blackberry/upgrade.md
new file mode 100644
index 0000000..3803df2
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/blackberry/upgrade.md
@@ -0,0 +1,431 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading BlackBerry
+
+This guide shows how to modify BlackBerry projects to upgrade from
+older versions of Cordova.  These instructions apply to projects
+created with an older set of command-line tools that precede the
+`cordova` CLI utility. See The Command-line Interface for information
+how to update the version of the CLI.
+
+## Upgrading 2.8.0 projects to 2.9.0 ##
+
+BlackBerry 10:
+
+1. Download and extract the Cordova 2.9.0 source to a permanent location on your hard drive, for example to `~/Cordova-2.9.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. This becomes the home of your updated project.
+
+5. Copy your project's source from the old project's `/www` directory to the new project's `/www` directory.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+### BlackBerryOS/Playbook ###
+
+1. Download and extract the Cordova 2.9.0 source to a permanent location on your hard drive, for example to `~/Cordova-2.9.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` file from the new project into the `www` directory, and delete the `www/cordova.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrading 2.7.0 projects to 2.8.0 ##
+
+BlackBerry 10:
+
+BlackBerry 10 uses the new CLI tooling and manages core APIs as plugins. The instructions migrate your project to a new project, rather than updating an existing project, due to the complexity of updating an old project.
+Also note that the cordova js script file is now called 'cordova.js' and no longer contains a version string.
+
+1. Download and extract the Cordova 2.8.0 source to a permanent location on your hard drive, for example to `~/Cordova-2.8.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. This becomes the home of your updated project.
+
+5. Copy your project's source from the old project's `/www` directory to the new project's `/www` directory.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+BlackBerryOS/Playbook:
+
+1. Download and extract the Cordova 2.8.0 source to a permanent location on your hard drive, for example to `~/Cordova-2.8.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` file from the new project into the `www` directory, and delete the `www/cordova.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrading 2.6.0 projects to 2.7.0 ##
+
+1. Download and extract the Cordova 2.7.0 source to a permanent location on your hard drive, for example to `~/Cordova-2.7.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.7.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.6.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.7.0.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrade to 2.6.0 from 2.5.0 ##
+
+Updating the PhoneGap download directory:
+
+It is recommended that you download a fresh copy of the entire directory.
+
+However, here are the new parts needed for the piecemeal update:
+
+1. Update the cordova.blackberry.js file in the `Phonegap-2.6.0/lib/blackberry/javascript` directory.
+
+2. Update the `ext`, `ext-air`, and `ext-qnx` in the `Phonegap-2.6.0/lib/blackberry/framework` directory.
+
+3. Update the `build.xml` file in the `Phonegap-2.6.0/lib/blackberry` directory.
+
+4. Update the `Phonegap-2.6.0/lib/blackberry/bin` directory.
+
+5. Update the `VERSION` file in the `Phonegap-2.6.0/lib/blackberry` directory.
+
+Updating the `example/` directory or migrating an existing project:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Update the contents of the `ext-qnx/` directory.
+
+4. Copy the new `cordova-2.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.6.0.js` file.
+
+## Upgrade to 2.5.0 from 2.4.0 ##
+
+Updating the PhoneGap download directory:
+
+It is recommended that you download a fresh copy of the entire directory.
+
+However, here are the new parts needed for the piecemeal update:
+
+1. Update the cordova.blackberry.js file in the `Phonegap-2.5.0/lib/blackberry/javascript` directory.
+
+2. Update the `ext`, `ext-air`, and `ext-qnx` in the `Phonegap-2.5.0/lib/blackberry/framework` directory.
+
+3. Update the `build.xml` file in the `Phonegap-2.5.0/lib/blackberry` directory.
+
+4. Update the `Phonegap-2.5.0/lib/blackberry/bin` directory.
+
+5. Update the `VERSION` file in the `Phonegap-2.5.0/lib/blackberry` directory.
+
+Updating the example/ directory or migrating an existing project:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Update the contents of the `ext-qnx/` directory.
+
+4. Copy the new `cordova-2.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.5.0.js` file.
+
+## Upgrade to 2.4.0 from 2.3.0 ##
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.4.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.4.0.js` file.
+
+Updating the sample directory (ie, updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.3.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.3.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.3.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.3.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.3.0/` directory to `cordova.2.4.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+8. Open the `www` directory and update your HTML to use the new `cordova-2.4.0.js` file.
+
+## Upgrade to 2.3.0 from 2.2.0 ##
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.3.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.3.0.js` file.
+
+Updating the sample directory (ie, updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.2.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.2.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.2.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.2.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.2.0/` directory to `cordova.2.3.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+8. Open the `www` directory and update your HTML to use the new `cordova-2.3.0.js` file.
+
+## Upgrade to 2.2.0 from 2.1.0 ##
+
+Updating just the www directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.2.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.2.0.js` file.
+
+Updating the sample directory (ie, updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.1.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.1.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.1.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.1.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.1.0/` directory to `cordova.2.2.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+8. Open the `www` directory and update your HTML to use the new `cordova-2.2.0.js` file.
+
+## Upgrade to 2.1.0 from 2.0.0 ##
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.1.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-2.1.0.js` file.
+
+Updating the sample directory (ie, updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.0.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.0.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.2.0.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.2.0.0/` directory to `cordova.2.1.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+7. Open the `www` directory and update your HTML to use the new `cordova-2.1.0.js` file.
+
+## Upgrade to 2.0.0 from 1.9.0 ##
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.0.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-2.0.0.js` file.
+
+6. Update the `www/plugins.xml` file. Two plugins changed their
+   namespace/service label. Change the old entries for the Capture and
+   Contact plugins from:
+
+        <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+        <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+        <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+        <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+Updating the sample directory (ie, updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.1.9.0/ext/` directory.
+
+3. Update the contents of the `cordova.1.9.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.1.9.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.1.9.0/` directory to `cordova.2.0.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+7. Open the `www` directory and update your HTML to use the new `cordova-2.0.0.js` file.
+
+8. Open the `www` directory and update the `plugins.xml` file. Two plugins
+   changed their namespace/service label. Change the old entries for the
+   Capture and Contact plugins from:
+
+         <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+         <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+         <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+         <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+- To upgrade to 1.8.0, please go from 1.7.0
+
+## Upgrade to 1.8.0 from 1.7.0 ##
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update the `www/plugins.xml` file. Two plugins changed their
+   namespace/service label. Change the old entries for the Capture and
+   Contact plugins from:
+
+        <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+        <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+        <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+        <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+Updating the sample directory (ie, updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.1.7.0/ext/` directory.
+
+3. Update the contents of the `cordova.1.7.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.1.7.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.1.7.0/` directory to `cordova.1.8.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+7. Open the `www` directory and update your HTML to use the new `cordova-1.8.0.js` file.
+
+8. Open the `www` directory and update the `plugins.xml` file. Two plugins
+   changed their namespace/service label. Change the old entries for the
+   Capture and Contact plugins from:
+
+         <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+         <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+         <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+         <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
diff --git a/docs/en/5.1.1/guide/platforms/blackberry10/config.md b/docs/en/5.1.1/guide/platforms/blackberry10/config.md
new file mode 100644
index 0000000..305f6f9
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/blackberry10/config.md
@@ -0,0 +1,51 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to BlackBerry 10 builds. See [The config.xml
+File](config_ref_index.md.html#The%20config.xml%20File) for information on global configuration options.
+
+- `ChildBrowser` (`disable` or the default `enable`): Disables child
+  browser windows. By default, apps launch a secondary browser window
+  to display resources accessed via `window.open()` or by specifying a
+  `_blank` anchor target. Specify `disable` to override this default
+  behavior.
+
+        <preference name="ChildBrowser" value="disable"/>
+
+- `PopupBlocker` (`enable` or the default `disable`): Enables the
+  popup blocker, which prevents calls to `window.open()`. By default,
+  popups display in a child browser window. Setting the preference to
+  `enable` prevents it from displaying at all.
+
+        <preference name="PopupBlocker" value="enable"/>
+
+- `WebSecurity` (`disable` or the default `enable`): Set to `disable`
+  to override web security settings, allowing access to remote content
+  from unknown sources. This preference is intended as a development
+  convenience only, so remove it before packaging the app for
+  distribution.  For the released app, all URIs should be known and
+  whitelisted using the `<access>` element, described in the Domain
+  Whitelist Guide.
+
+        <preference name="WebSecurity" value="disable"/>
+
diff --git a/docs/en/5.1.1/guide/platforms/blackberry10/index.md b/docs/en/5.1.1/guide/platforms/blackberry10/index.md
new file mode 100644
index 0000000..bf4a563
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/blackberry10/index.md
@@ -0,0 +1,267 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Platform Guide
+
+This guide shows how to set up your SDK environment to deploy
+Cordova apps for BlackBerry 10 devices.  For previous versions of
+BlackBerry, you need to use a different SDK environment and set of
+command-line tools, described in the BlackBerry Platform Guide.
+For BlackBerry 10, you need to install the SDK regardless of whether
+you want to use the cross-platform Cordova CLI for development, or a
+narrower set of platform-centered command-line tools.  For a
+comparison of the two development paths, see the Overview.  For
+details on each, see The Command-Line Interface and the BlackBerry 10
+Shell Tool Guide.
+
+## Requirements
+
+The development environment is available on Windows, Mac and Linux.
+
+Developers should use the `cordova` utility in conjunction with the
+BlackBerry WebWorks SDK or BlackBerry Native SDK. See The Command-Line
+Interface for information how to install `cordova`, add projects, then
+build and deploy for each platform.
+
+BlackBerry 10 Device Simulator:
+
+* Processor: Intel dual core 2.0 GHz/AMD Athlon 4200+ or higher
+* Disk space: 10 GB 
+* RAM Memory: 4 GB 
+* Virtualization: one of the following:
+  * __Intel Virtualization Technology__ (VT, VT-x, vmx) &rarr; [Intel VT-x supported processor list](http://ark.intel.com/products/virtualizationtechnology)
+  * __AMD Virtualization__ (AMD-V, SVM) (Since May 2006 all AMD CPUs include AMD-V except Sempron).
+
+More information about requirements: [BB10 Simulator requeriments](http://developer.blackberry.com/devzone/develop/simulator/simulator_systemrequirements.html).
+
+## Install the BlackBerry WebWorks SDK
+
+Download and install the BlackBerry WebWorks SDK from [developer.blackberry.com](https://developer.blackberry.com/html5/download/)
+
+The installer will add command-line tools to your path. Depending on your OS,
+you may need to open a new terminal window or re-log in.
+
+## Install the BlackBerry Native SDK
+
+If you need to compile native code, for example when developing a native plugin, you
+will need to install the BlackBerry Native SDK.
+
+In order to get the BlackBerry Native SDK, download and install the IDE for BlackBerry available from
+[developer.blackberry.com](http://developer.blackberry.com/native/download/), then using the IDE, install the BlackBerry Native SDK.
+Following installation, you need to add its command-line tools to your
+system path.
+
+On Windows:
+
+* Go to __My Computer &rarr; Properties &rarr; Advanced &rarr; Environment Variables__.
+
+* Append the Native SDK's install directory to the PATH, for example:
+
+        ;C:\bbndk\host_10_1_0_132\win32\x86\usr\bin\
+
+On Mac and Linux:
+
+* Edit the `~/.bash_profile` file, adding a line such as the
+  following, depending on where the Native SDK was installed:
+
+        $ export PATH=${PATH}:/Applications/bbndk/host_10_1_0_132/darwin/x86/usr/bin/
+
+  or for the 10.2 Native SDK:
+
+        $ export PATH=${PATH}:/Applications/Momentics.app/host_10_2_0_15/darwin/x86/usr/bin/
+
+* Run the following to apply the change in the current session:
+
+        $ source ~/.bash_profile
+
+If you got any environmental problem, using the Native SDK from the command line, execute the appropriate file for your platform, located within the installation path:
+
+* On Windows &rarr; MS-DOS shell:
+
+        C:\> \bbndk\bbndk-env_xx_xx_xx_xxxx.bat
+
+* On Windows &rarr; git bash shell:
+
+        $ `\bbndk\bbndk-env_xx_xx_xx_xxxx.bat`
+
+* On Linux &rarr; Installed as root user:
+
+        $ `./opt/bbndk/bbndk-env_xx_xx_xx_xxxx.sh`
+
+* On Linux &rarr; Installed as non-root user:
+
+        $ `./home/username/bbndk/bbndk-env_xx_xx_xx_xxxx.sh`
+
+* On Mac:
+
+        $ `/Developer/SDKs/bbndk/bbndk-env_xx_xx_xx_xxxx.sh`
+
+
+## Set up for Signing
+
+If you wish to test on a device or distribute apps through BlackBerry
+World, your system must be setup for code signing.
+
+To obtain a signing key, go to the [BlackBerry Keys Order Form] (https://www.blackberry.com/SignedKeys/codesigning.html).
+
+Select the first checkbox: "for BlackBerry10 apps developed using BlackBerry
+NDK" and then sign in or create a BBID.
+
+Enter a password and click "Get Token" to download bbidtoken.csk. Save this
+file to the default location for your OS which will be displayed on the
+download page.
+
+The final step is to generate a signing certificate:
+
+    $ blackberry-keytool -genkeypair -storepass <password> -author 'Your Name’
+
+## Create a Project
+
+Use the `cordova` utility to set up a new project, as described in The
+Command-line Interface. For example, in a source-code directory:
+ 
+        $ cordova create hello com.example.hello
+        $ cd hello
+        $ cordova platform add blackberry10
+        $ cordova build
+
+## Deploy to Emulator
+
+If you wish to run a device emulator, download and install the
+BlackBerry 10 Simulator.
+
+* [Download](http://developer.blackberry.com/native/download/)
+* [Getting Started](http://developer.blackberry.com/devzone/develop/simulator/blackberry_10_simulator_start.html)
+
+Before testing an app on either an emulator or a device, you need to
+enable development mode.
+
+Launch the emulator image, then choose __Settings__ from the home screen:
+
+![](img/guide/platforms/blackberry10/bb_home.png)
+
+Navigate to the __Security and Privacy &rarr; Development Mode__
+section and enable the option:
+
+![](img/guide/platforms/blackberry10/bb_devel.png)
+
+An additional set of command-line utilities are included when you set
+up the BlackBerry 10 platform for your project.  The following
+command, in this case invoked from the project top-level directory,
+associates a target named _emu_ with the IP address displayed above.
+
+* On Windows:
+
+        $ platforms\blackberry10\cordova\target.bat add emu 169.254.0.1 -t simulator
+
+* On Mac/Linux:
+
+        $ platforms/blackberry10/cordova/target add emu 169.254.0.1 -t simulator
+
+Then, run the `emulate` command to view the app:
+
+        $ cordova emulate blackberry10
+
+## Deploy to Device
+
+To deploy to a device, make sure it is plugged into your computer.
+Enable development mode and obtain the IP address as desribed in the
+emulator section above. You will also need to obtain the PIN from the
+the __Settings__ application under __About &rarr; Hardware__:
+
+![](img/guide/platforms/blackberry10/bb_pin.png)
+
+Run the target command-line utility to associate a name with an IP
+address, device password and PIN.
+
+* On Windows:
+
+        $ platforms\blackberry10\cordova\target.bat add mydevice 169.254.0.1 -t device --password 123456 --pin FFFF972E
+
+* On Mac/Linux:
+
+        $ platforms/blackberry10/cordova/target add mydevice 169.254.0.1 -t device --password 123456 --pin FFFF972E
+
+where:
+
+* `--password` refers to the password to unlock the device.
+
+* `--pin` refers to the device PIN obtained from the __Settings__ application.
+
+Then, run the `run` command to view the app:
+
+        $ cordova run blackberry10
+
+If a debug token is not yet set up for the device, an error message
+prompts you to use the platform run script with the password you
+provided when registering for signing keys.
+
+* On Windows:
+
+        $ platforms\blackberry10\cordova\run.bat --device --keystorepass mysecret
+
+* On Mac/Linux:
+
+        $ platforms/blackberry10/cordova/run --device --keystorepass mysecret
+
+## Debugging with WebInspector
+
+When debugging on the device or an emulator, you may run WebInspector
+remotely to view the application's internal state.  A prompt displays
+the URL that allows you to connect to the app with a standard web
+browser.  For more information, see
+[Debugging using WebInspector](http://developer.blackberry.com/html5/documentation/web_inspector_overview_1553586_11.html).
+
+## Building a Release Version
+
+By default, running the `cordova build` command creates an unsigned
+_.bar_ package file suitable for testing on a device or simulator.
+
+Use `--release` to create a release version suitable for distribution
+through BlackBerry World.
+
+    $ cordova build --release --keystorepass <signing password>
+
+The `--keystorepass` option specifies the password you defined when
+configuring your computer to sign applications.
+
+
+## Deploy to Other Locations
+
+The instructions above assume a device is plugged in via USB or a
+simulator is running on the local machine. It is also possible to
+deploy to other locations.
+
+An additional set of command-line utilities are included when you set
+up the BlackBerry 10 platform for your project.  The following
+command, in this case invoked from the project top-level directory,
+associates a target named _emu_ with an IP address.
+
+* On Windows:
+
+        $ platforms\blackberry10\cordova\build.bat --release --keystorepass mysecret
+
+* On Mac/Linux:
+
+        $ platforms/blackberry10/cordova/build --release --keystorepass mysecret
+
+Once the target is defined, you can provide it to the run command using
+`--target`:
+
+    $ cordova run blackberry10 --target=emu
diff --git a/docs/en/5.1.1/guide/platforms/blackberry10/plugin.md b/docs/en/5.1.1/guide/platforms/blackberry10/plugin.md
new file mode 100644
index 0000000..8dd06be
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/blackberry10/plugin.md
@@ -0,0 +1,255 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Plugins
+
+This section provides details for how to implement native plugin code
+on the BlackBerry 10 platform. Before reading this, see Application
+Plugins for an overview of the plugin's structure and its common
+JavaScript interface. This section continues to demonstrate the sample
+_echo_ plugin that communicates from the Cordova webview to the native
+platform and back.
+
+The Echo plugin basically returns whatever string the `window.echo`
+function sends from JavaScript:
+
+        window.echo = function(str, callback) {
+            cordova.exec(callback, function(err) {
+                callback('Nothing to echo.');
+            }, "Echo", "echo", [str]);
+        };
+
+A Cordova plugin for BlackBerry 10 contains both JavaScript and native
+code, which communicate with each other through a framework provided
+by JNEXT. Every plugin must also include a `plugin.xml` file.
+
+## Creating the Native Class
+
+To create the native portion of your plugin, open the BlackBerry 10
+NDK IDE and select __File &rarr; New &rarr; BlackBerry Project &rarr;
+Native Extension &rarr; BlackBerry 10__. Enter the desired
+project name and location, then press __Finish__.
+
+The project created by the IDE contains sample code for a memory
+plugin. You may replace or modify these files to implement your own
+functionality:
+
+- `*name*_js.hpp`: C++ header for the JNEXT code.
+
+- `*name*_js.cpp`: C++ code for JNEXT.
+
+The native interface for the JNEXT extension can be viewed in the
+plugin header file located in the project's public directory. It also
+features constants and utility functions available from within native
+code. The plugin must be derived from `JSExt`, which is defined in
+`plugin.h`. That is, you must implement the following class:
+
+        class JSExt
+        {
+        public:
+            virtual ~JSExt() {};
+            virtual string InvokeMethod( const string& strCommand ) = 0;
+            virtual bool CanDelete( void ) = 0;
+        private:
+            std::string m_id;
+        };
+
+The extension should include the `plugin.h` header file. In the `Echo`
+example, you use `JSExt` as follows in the `echo_js.hpp` file:
+
+        #include "../public/plugin.h"
+        #include <string>
+
+        #ifndef ECHO_JS_H_
+        #define ECHO_JS_H_
+
+        class Echo : public JSExt
+        {
+        public:
+            explicit Echo(const std::string& id);
+            virtual ~Echo();
+            virtual std::string InvokeMethod(const std::string& command);
+            virtual bool CanDelete();
+        private:
+            std::string m_id;
+        };
+
+        #endif // ECHO_JS_H_
+
+The `m_id` attribute contains the `JNEXT` id for the object, which is
+passed to the class as an argument to the constructor. It is needed
+for the native side to trigger events on the JavaScript side.  The
+`CanDelete` method determines whether the native object can be
+deleted.  The `InvokeMethod` function is called as a result from a
+request from JavaScript to invoke a method of this particular
+object. The only argument to this function is a string passed from
+JavaScript that this method parses to determine which of the native
+object's methods should execute.  These methods are implemented in
+`echo_js.cpp`. Here is the `InvokeMethod` function for the `Echo`
+example:
+
+        string Echo::InvokeMethod(const string& command) {
+
+            //parse command and args from string
+            int index = command.find_first_of(" ");
+            string strCommand = command.substr(0, index);
+            string strValue = command.substr(index + 1, command.length());
+
+            // Determine which function should be executed
+            if (strCommand == "echo") {
+                return strValue;
+            } else {
+                return "Unsupported Method";
+            }
+        }
+
+The native plugin must also implement the following callback
+functions:
+
+- `extern char* onGetObjList( void );`
+
+- `extern JSExt* onCreateObject( const string& strClassName, const string& strObjId );`
+
+The `onGetObjList` function returns a comma-separated list of classes
+supported by JNEXT. JNEXT uses this function to determine the set of
+classes that JNEXT can instantiate. The `Echo` plugin implements the
+following in `echo_js.cpp`:
+
+        char* onGetObjList() {
+            static char name[] = "Echo";
+            return name;
+        }
+
+The `onCreateObject ` function takes two parameters. The first is the
+name of the requested class to be created from the JavaScript side,
+with valid names as those returned in `onGetObjList`. The second
+parameter is the class's unique object id. This method returns a
+pointer to the created plugin object. The `Echo` plugin implements the
+following in `echo_js.cpp`:
+
+        JSExt* onCreateObject(const string& className, const string& id) {
+            if (className == "Echo") {
+                return new Echo(id);
+            }
+            return NULL;
+        }
+
+## Creating the Plugin's JavaScript
+
+The plugin must contain the following JavaScript files:
+
+- `client.js`: This is considered the client side and contains the API
+  available to a Cordova application. The API in `client.js` calls
+  makes calls to `index.js`. The API in `client.js` also connects
+  callback functions to the events that fire the callbacks.
+
+- `index.js`: Cordova loads `index.js` and makes it accessible through
+  the cordova.exec bridge. The `client.js` file makes calls to the API
+  in the `index.js` file, which in turn makes call to JNEXT to
+  communicate with the native side.
+
+The client and server side (`client.js` and `index.js`) interacts
+through the `Cordova.exec` function. The `client.js` needs to invoke
+the `exec` function and provide the necessary arguments. The `Echo`
+plugin implements the following in the `client.js` file:
+
+        var service = "org.apache.cordova.blackberry.echo",
+            exec = cordova.require("cordova/exec");
+
+        module.exports = {
+            echo: function (data, success, fail) {
+                exec(success, fail, service, "echo", { data: data });
+            }
+        };
+
+The `index.js` component uses JNEXT to interact with the native
+side. Attaching a constructor function named `Echo` to JNEXT allows
+you to perform the following key operations using the `init` function:
+
+- Specify the required module exported by the native side. The name of
+  the required module must match the name of a shared library file
+  (`.so` file):
+
+        JNEXT.require("libecho")
+
+- Create an object by using an acquired module and save the ID that's
+  returned by the call:
+
+        self.m_id = JNEXT.createObject("libecho.Echo");
+
+  When the application calls the `echo` function in `client.js`, that
+  call in turn calls the `echo` function in `index.js`, where the
+  `PluginResult` object sends data as a response back to `client.js`.
+  Since the `args` argument passed into the functions was converted by
+  `JSON.stringfy()` and encoded as a `URIcomponent`, you must call the
+  following:
+
+        data = JSON.parse(decodeURIComponent(args.data));
+
+You can now send the data back, as in the following:
+
+        module.exports = {
+            echo: function (success, fail, args, env) {
+                var result = new PluginResult(args, env),
+                data = JSON.parse(decodeURIComponent(args.data)),
+                response = echo.getInstance().echo(data);
+                result.ok(response, false);
+            }
+        };
+
+## Plugin Architecture
+
+You can place the plugin's artifacts, including the `plugin.xml` file,
+the JavaScript and C++ source files, and the `.so` binary files within
+any directory structure, as long as you correctly specify the file
+locations in the `plugin.xml` file. Here is a typical structure:
+
+***project_directory*** (>plugin.xml)
+
+- **www** (>client.js)
+- **src**
+  - **blackberry10** (>index.js, **native** >*.cpp, *.hpp)
+  - **device** (>*binary file* *.so)
+  - **simulator** (>*binary file* *.so)
+
+The list shows the hierarchical relationship among the top-level
+folders. The parenthesis shows the contents of a given directory. All
+directory names appear in bold text. File names are preceded by the `>`
+sign.
+
+## The _plugin.xml_ file
+
+The `plugin.xml` file contains the extension's namespace and other
+metadata. Set up the `Echo` plugin as follows:
+
+        <plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
+            id="org.apache.cordova.blackberry.echo"
+            version="1.0.0">
+            <js-module src="www/client.js">
+                <merges target="navigator" />
+            </js-module>
+            <platform name="blackberry10">
+                <source-file src="src/blackberry10/index.js" />
+                <lib-file src="src/blackberry10/native/device/libecho.so" arch="device" />
+                <lib-file src="src/blackberry10/native/simulator/libecho.so" arch="simulator" />
+                <config-file target="www/config.xml" parent="/widget">
+                    <feature name="org.apache.cordova.blackberry.echo" value="org.apache.cordova.blackberry.echo" />
+                </config-file>
+            </platform>
+        </plugin>
diff --git a/docs/en/5.1.1/guide/platforms/blackberry10/tools.md b/docs/en/5.1.1/guide/platforms/blackberry10/tools.md
new file mode 100644
index 0000000..c80935c
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/blackberry10/tools.md
@@ -0,0 +1,178 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Shell Tool Guide
+
+The `cordova` command-line utility is a high-level tool that allows
+you to build applications across several platforms at once. An older
+version of the Cordova framework provides sets of command-line tools
+specific to each platform. To use them as an alternative to the CLI,
+you need to download this version of Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand the platform you wish to
+target. The tools described here are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+For information on the low-level command-line interface that enables
+plugins, see Using Plugman to Manage Plugins. See Application Plugins
+for details on how to develop plugins.
+
+If you need help with any command listed below, type the command along
+with the `-h` or `-help` arguments, which are supported by all
+commands and which provide descriptions for each of the available
+arguments.
+
+## Create an App
+
+The `create` command creates a new project:
+
+        bin/create <path-to-project> <project-package> <project-name>
+
+where
+
+- `<path-to-project>` specifies the directory you want the project created in
+
+- `<project-package>` specifies a reverse domain style identifier
+
+- `<project-name>` specifies the apps display name
+
+__NOTE__: the `create` command bootstraps dependency installation
+through the `npm install` command. Depending on the installation
+directory and system permissions, this may require administrator
+privileges.  If there's problem on OSX/Linux, run `sudo npm install`
+before using the `create` command. On Windows, run `npm install` in a
+command-line utility opened with administrator privileges.
+
+## Create a Target
+
+The `target` command allows you to manage the emulator or BlackBerry
+devices that you use to test the app. You can add or remove a target,
+or set a target as the default target.
+
+### Add a Target
+
+        <path-to-project>/cordova/target add <name> <ip-address> [-t | --type <device | simulator>] [-p | --password <password>] [--pin <device-pin>]
+
+where
+
+- `<name>` specifies a unique name for the target.
+
+- `<ip-address>` specifies the ip address of the BlackBerry device or
+  simulator.
+
+- `-p | --password <password>` specifies the password for the device or
+  emulator. This is required only if the device or emulator is
+  password protected.
+
+- `--pin <device-pin>` specifies the PIN of the BlackBerry device,
+  which identifies that device as a valid host for the debug
+  token. This argument is required only when creating a debug
+  token.
+
+### Remove a Target
+
+        <path-to-project>/cordova/target remove <name>
+
+### Set a Target as the Default
+
+        <path-to-project>/cordova/target default <name>
+
+## Build the App
+
+The `build` command builds the project as a .bar file. You can build
+the app in either release mode (which produces a signed .bar file) or
+in debug mode (which produces an unsigned .bar file).
+
+### Build the App in Release Mode
+
+        <path-to-project>/cordova/build release [-k | --keystorepass <password>] [-b | --buildId <number>] [-p | --params <params-JSON-file>]
+
+where
+
+-   `-k | --keystorepass <password>`  specifies the password you defined when you configured your computer to sign applications.
+
+-   `-b | --buildId <number>`  specifies the build version number of your application. Typically, this number should be incremented from the previous signed version. This argument is optional.
+
+-   `-p | --params <params-JSON-file>`  specifies a JSON file containing additional parameters to pass to downstream tools. This argument is optional.
+
+### Build the Project in Debug Mode
+
+        <path-to-project>/cordova/build debug [<target>] [-k | --keystorepass <password>] [-p | --params <params-JSON-file>]  [-ll | --loglevel <error|warn|verbose>]
+
+where
+
+- `<target>` specifies the name of a previously added target. If
+  `<target>` is not specified, the default target is used, if one has
+  been created. This argument is only required if you want the script
+  to deploy the app to a BlackBerry device or emulator and you have
+  not created a default target. Additionally, if `<target>` is a
+  device, then that device must be connected to your computer by USB
+  connection or be connected to the same Wi-Fi network as your
+  computer.
+
+- `-k | --keystorepass <password>` specifies the password you defined
+  when you configured your computer to sign applications. This
+  password is also used to create your debug token. This argument is
+  only required if you want the script to create and install the debug
+  token for you.
+
+- `-p | --params <params-JSON-file>` specifies a JSON file containing
+  additional parameters to pass to downstream tools.
+
+- `-ll | --loglevel <level>` specifies the log level. The log level may
+  be one of `error`, `warn`, or `verbose`.
+
+If you have previously defined a default target (and previously
+installed a debug token, if that target is a BlackBerry device), you
+can run the script with no arguments, and the script packages your
+app and deploys it to the default target. For example:
+
+        <path-to-project>/cordova/build debug
+
+## Run the App
+
+The `run` command deploys the app's most recent build on the specified
+BlackBerry device or an emulator. To deploy your app, you need to
+specify a target for the device or emulator:
+
+        <path-to-project>/cordova/run <target>
+
+...where `<target> `specifies the name of a previously added target.
+If `<target>` is a device, then it must be connected to your computer
+via USB cable, or else over the same Wi-Fi network as your computer.
+
+## Handle Plugins
+
+The `target` command allows you to add and remove plugins.  To fetch a
+locally hosted plugin:
+
+        <path-to-project>/cordova/plugin fetch <path-to-plugin>
+
+View a list of installed plugins:
+
+        <path-to-project>/cordova/plugin ls
+
+Add a plugin:
+
+        <path-to-project>/cordova/plugin add <name>
+
+Remove a plugin:
+
+        <path-to-project>/cordova/plugin rm <name>
diff --git a/docs/en/5.1.1/guide/platforms/blackberry10/upgrade.md b/docs/en/5.1.1/guide/platforms/blackberry10/upgrade.md
new file mode 100644
index 0000000..0cf703b
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/blackberry10/upgrade.md
@@ -0,0 +1,502 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading BlackBerry 10
+
+This guide shows how to modify BlackBerry projects to upgrade from older versions of Cordova.
+Most of these instructions apply to projects created with an older set
+of command-line tools that precede the `cordova` CLI utility. See The Command-Line Interface for information how to update the
+version of the CLI.
+
+## Upgrading 3.6.0 Projects to 4.0.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update blackberry` in your existing projects.
+
+## Upgrading to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update blackberry`
+        
+For projects not created with the cordova CLI, run:
+
+        bin/update <project_path>
+
+## Upgrade to 3.1.0 from 3.0.0
+
+1. Create a new Apache Cordova 3.1.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add blackberry10`.
+
+3. Copy the contents of the original project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`Resources`, etc.)
+
+5. Copy the `config.xml` file into the `www` directory, and remove any
+   plugin definitions. You need to modify settings here rather than
+   within the platform directory.
+
+6. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only plugins marked 3.0.0 and above are compatible with the CLI.
+
+7. Build and test.
+
+Please note that the CLI supports the BlackBerry10 platform exclusively. For PlayBook and BBOS, please see Cordova version 2.9.0 and below.
+
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add blackberry10`.
+
+3. Copy the contents of the original project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`Resources`, etc.)
+
+5. Copy the `config.xml` file into the `www` directory, and remove any
+   plugin definitions. You need to modify settings here rather than
+   within the platform directory.
+
+6. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+7. Build and test.
+
+## Upgrading 2.8.0 Projects to 2.9.0
+
+For BlackBerry 10:
+
+1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.9.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. This becomes the home of your updated project.
+
+5. Copy your projects source from the old project's `/www` directory to the new project's `/www` directory.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+For BlackBerryOS/Playbook:
+
+1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.9.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` file from the new project into the `www` directory, and delete the `www/cordova.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrading 2.7.0 Projects to 2.8.0
+
+BlackBerry 10 uses the new CLI tooling and manages core APIs as plugins. The instructions migrate your project to a new project, rather than updating an existing project, due to the complexity of updating an old project.
+Also note that the cordova js script file is now called 'cordova.js' and no longer contains a version string.
+
+1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.8.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. This becomes the home of your updated project.
+
+5. Copy your projects source from the old project's `/www` directory to the new project's `/www` directory.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+For BlackBerryOS/Playbook:
+
+1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.8.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` file from the new project into the `www` directory, and delete the `www/cordova.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrading 2.6.0 Projects to 2.7.0
+
+1. Download and extract the Cordova 2.7.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.7.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.7.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.6.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.7.0.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrade to 2.6.0 from 2.5.0
+
+Updating the PhoneGap download directory:
+
+It is recommended that you download a fresh copy of the entire directory.
+
+However, here are the new parts needed for the piecemeal update:
+
+1. Update the cordova.blackberry.js file in the `Phonegap-2.6.0/lib/blackberry/javascript` directory.
+
+2. Update the `ext`, `ext-air`, and `ext-qnx` in the `Phonegap-2.6.0/lib/blackberry/framework` directory.
+
+3. Update the `build.xml` file in the `Phonegap-2.6.0/lib/blackberry` directory.
+
+4. Update the `Phonegap-2.6.0/lib/blackberry/bin` directory.
+
+5. Update the `VERSION` file in the `Phonegap-2.6.0/lib/blackberry` directory.
+
+Updating the example/ directory or migrating an existing project:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Update the contents of the `ext-qnx/` directory.
+
+4. Copy the new `cordova-2.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.6.0.js` file.
+
+## Upgrade to 2.5.0 from 2.4.0
+
+Updating the PhoneGap download directory:
+
+It is recommended that you download a fresh copy of the entire directory.
+
+However, here are the new parts needed for the piecemeal update:
+
+1. Update the cordova.blackberry.js file in the `Phonegap-2.5.0/lib/blackberry/javascript` directory.
+
+2. Update the `ext`, `ext-air`, and `ext-qnx` in the `Phonegap-2.5.0/lib/blackberry/framework` directory.
+
+3. Update the `build.xml` file in the `Phonegap-2.5.0/lib/blackberry` directory.
+
+4. Update the `Phonegap-2.5.0/lib/blackberry/bin` directory.
+
+5. Update the `VERSION` file in the `Phonegap-2.5.0/lib/blackberry` directory.
+
+Updating the example/ directory or migrating an existing project:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Update the contents of the `ext-qnx/` directory.
+
+4. Copy the new `cordova-2.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.5.0.js` file.
+
+## Upgrade to 2.4.0 from 2.3.0
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.4.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.4.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.3.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.3.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.3.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.3.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.3.0/` directory to `cordova.2.4.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+8. Open the `www` directory and update your HTML to use the new `cordova-2.4.0.js` file.
+
+## Upgrade to 2.3.0 from 2.2.0
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.3.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.3.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.2.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.2.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.2.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.2.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.2.0/` directory to `cordova.2.3.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+8. Open the `www` directory and update your HTML to use the new `cordova-2.3.0.js` file.
+
+## Upgrade to 2.2.0 from 2.1.0
+
+Updating just the www directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.2.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.2.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.1.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.1.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.1.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.1.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.1.0/` directory to `cordova.2.2.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+8. Open the `www` directory and update your HTML to use the new `cordova-2.2.0.js` file.
+
+## Upgrade to 2.1.0 from 2.0.0
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.1.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-2.1.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.0.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.0.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.2.0.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.2.0.0/` directory to `cordova.2.1.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+7. Open the `www` directory and update your HTML to use the new `cordova-2.1.0.js` file.
+
+## Upgrade to 2.0.0 from 1.9.0
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.0.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-2.0.0.js` file.
+
+6. Update the `www/plugins.xml` file. Two plugins changed their
+   namespace/service label. Change the old entries for the Capture and
+   Contact plugins from:
+
+        <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+        <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+        <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+        <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.1.9.0/ext/` directory.
+
+3. Update the contents of the `cordova.1.9.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.1.9.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.1.9.0/` directory to `cordova.2.0.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+7. Open the `www` directory and update your HTML to use the new `cordova-2.0.0.js` file.
+
+8. Open the `www` directory and update the `plugins.xml` file. Two plugins
+   changed their namespace/service label. Change the old entries for the
+   Capture and Contact plugins from:
+
+         <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+         <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+         <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+         <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+- To upgrade to 1.8.0, please go from 1.7.0
+
+## Upgrade to 1.8.0 from 1.7.0
+
+Updating just the `www` directory:
+
+1. Open the `www` directory, which contains the app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update the `www/plugins.xml` file. Two plugins changed their
+   namespace/service label. Change the old entries for the Capture and
+   Contact plugins from:
+
+        <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+        <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+        <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+        <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.1.7.0/ext/` directory.
+
+3. Update the contents of the `cordova.1.7.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.1.7.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.1.7.0/` directory to `cordova.1.8.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www` directory with updated Cordova.
+
+7. Open the `www` directory and update your HTML to use the new `cordova-1.8.0.js` file.
+
+8. Open the `www` directory and update the `plugins.xml` file. Two plugins
+   changed their namespace/service label. Change the old entries for the
+   Capture and Contact plugins from:
+
+         <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+         <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+         <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+         <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
diff --git a/docs/en/5.1.1/guide/platforms/firefoxos/index.md b/docs/en/5.1.1/guide/platforms/firefoxos/index.md
new file mode 100644
index 0000000..2e3e004
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/firefoxos/index.md
@@ -0,0 +1,76 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Firefox OS Platform Guide
+
+This guide describes how to set up your development environment to
+create Cordova apps for Firefox OS devices, then test and publish those apps.
+
+## Requirements and Support
+
+Firefox OS apps are basically just web apps, with the addition of a manifest.webapp file that defines metadata about the app and allows it to be installed on Firefox OS devices. Any platform that Cordova supports can be used.To find out more about building web apps, consult the [App Center](https://developer.mozilla.org/en-US/Apps) on [MDN](https://developer.mozilla.org/en-US/).
+
+## Installation and Environment Setup
+
+First install [Node.js](http://nodejs.org/), then install the Cordova package like so:
+
+  	$ npm install -g cordova
+
+Next, create a sample Cordova app then navigate into the newly created directory:
+
+  	$ cordova create test-app
+  	$ cd test-app
+
+Add Firefox OS as a supported platform to the app with the following:
+
+  	$ cordova platform add firefoxos
+
+This creates a Firefox OS app in platforms/firefoxos/www directory, which currently looks the same except that it has a Firefox manifest file (manifest.webapp) inside the www directory.
+
+##Developing your app
+
+At this point you are ready to go — change the code inside test-app/www to whatever you want your app to be. You can add [supported plugins]() to the app using "cordova plugin add", for example:
+
+	cordova plugin add cordova-plugin-device
+	cordova plugin add cordova-plugin-vibration
+
+When your app code is written, deploy your changes to the Firefox OS app you've added to your project with
+
+  	$ cordova prepare firefoxos
+  	
+To create a packaged app one can zip the platforms/firefoxos/www directory. You can also simply build it using 
+
+    $ cordova build firefoxos
+
+The Firefox OS packaged app will be built in platforms/firefoxos/build/package.zip
+
+##Testing and Debugging
+
+The app can be tested using the Firefox OS [Web IDE](https://developer.mozilla.org/en-US/docs/Tools/WebIDE).
+
+When you have connected the Web IDE to your test device/simulator, select the "Open Packaged App" option, then make sure you point to the test-app/platforms/firefoxos/www/ directory to include the App in the Manager interface.
+
+For here you can install the app on your test device/simulator (with the "Play" button). Using the "Pause" button you can then debug the app and edit its code live. 
+
+Note: Before attempting to publish your app you should consider validating it using the [App validator](https://marketplace.firefox.com/developers/validator).
+
+##Publishing your app on the Firefox Marketplace
+
+You can submit your app to the Firefox Marketplace, or publish it yourself. Visit the [Firefox Marketplace Zone](https://developer.mozilla.org/en-US/Marketplace) on MDN to find out more about how to do this; [App publishing options](https://developer.mozilla.org/en-US/Marketplace/Publishing/Publish_options) is the best place to start.
+
diff --git a/docs/en/5.1.1/guide/platforms/index.md b/docs/en/5.1.1/guide/platforms/index.md
new file mode 100644
index 0000000..96eb6af
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/index.md
@@ -0,0 +1,97 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Platform Guides
+
+Before developing for any of the platforms listed below, install
+cordova's command-line interface (CLI).
+(For details, see The Command-Line Interface.)
+
+To develop Cordova applications, you must install SDKs for each mobile
+platform you are targeting. This installation is necessary regardless
+of whether you do the majority of your work in the SDK or use the CLI
+for your build cycle.
+
+Each _Platform Guide_ listed below tells you what you need to know to
+set up each platform's development environment: where to obtain the
+SDK, how to set up device emulators, how to connect devices for direct
+testing, and how to manage signing key requirements.  Additional
+guides provide information on each platform's unique set of
+configuration options, instructions to add plugins, how to upgrade
+each platform, and platform-specific command-line tools that serve as
+a lower-level alternative to the `cordova` command-line utility.
+
+## Amazon Fire OS
+
+* Amazon Fire OS Platform Guide
+* Amazon Fire OS Configuration
+* Amazon Fire OS WebViews
+* Amazon Fire OS Plugins
+
+## Android
+
+* Android Platform Guide
+* Android Shell Tool Guide
+* Android Configuration
+* Android Plugins
+* Android WebViews
+* Upgrading Android
+
+## BlackBerry 10
+
+* BlackBerry 10 Platform Guide
+* BlackBerry 10 Shell Tool Guide
+* BlackBerry 10 Configuration
+* BlackBerry 10 Plugins
+* Upgrading BlackBerry 10
+
+## Firefox OS
+
+* Firefox OS Platform Guide
+
+## iOS
+
+* iOS Platform Guide
+* iOS Shell Tool Guide
+* iOS Configuration
+* iOS Plugins
+* iOS WebViews
+* Upgrading iOS
+
+## Ubuntu
+
+* Ubuntu Platform Guide
+
+## Windows Phone 8
+
+* Windows Phone 8 Platform Guide
+* Windows Phone 8 Plugins
+* Upgrading Windows Phone 8
+
+## Windows
+
+* Windows Platform Guide
+* Windows Plugins
+* Windows Packaging
+* Upgrading Windows 8
+
+## Tizen
+
+* Tizen Platform Guide
+
diff --git a/docs/en/5.1.1/guide/platforms/ios/config.md b/docs/en/5.1.1/guide/platforms/ios/config.md
new file mode 100644
index 0000000..3b3f7e1
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ios/config.md
@@ -0,0 +1,133 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to iOS builds. See [The config.xml
+File](config_ref_index.md.html#The%20config.xml%20File) for information on global configuration options.
+
+- `EnableViewportScale` (boolean, defaults to `false`): Set to `true`
+  to allow a viewport meta tag to either disable or restrict the range
+  of user scaling, which is enabled by default.
+
+        <preference name="EnableViewportScale" value="true"/>
+
+  Place a viewport such as the following in the HTML to disable
+  scaling and fit content flexibly within the rendering WebView:
+
+        <meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' />
+
+- `MediaPlaybackRequiresUserAction` (boolean, defaults to `false`):
+  Set to `true` to prevent HTML5 videos or audios from playing
+  automatically with the `autoplay` attribute or via JavaScript.
+
+        <preference name="MediaPlaybackRequiresUserAction" value="true"/>
+
+- `AllowInlineMediaPlayback` (boolean, defaults to `false`): Set to
+  `true` to allow HTML5 media playback to appear _inline_ within the
+  screen layout, using browser-supplied controls rather than native
+  controls. For this to work, add the `webkit-playsinline` attribute
+  to any `<video>` elements.
+
+        <preference name="AllowInlineMediaPlayback" value="true"/>
+
+- `BackupWebStorage` (string, either `none`, `local`, or the default
+  `cloud`): Set to `cloud` to allow web storage data to backup via
+  iCloud. Set to `local` to allow only local backups via iTunes
+  sync. Set to `none` prevent web storage backups.
+
+        <preference name="BackupWebStorage" value="local"/>
+
+- `TopActivityIndicator` (string, defaults to `gray`): Controls the
+  appearance of the small spinning icon in the status bar that
+  indicates significant processor activity.  Valid values are
+  `whiteLarge`, `white`, and `gray`.
+
+        <preference name="TopActivityIndicator" value="white"/>
+
+- `KeyboardDisplayRequiresUserAction` (boolean, defaults to `true`):
+  Set to `false` to allow the keyboard to appear when calling
+  `focus()` on form inputs.
+
+        <preference name="KeyboardDisplayRequiresUserAction" value="false"/>
+
+- `SuppressesIncrementalRendering` (boolean, defaults to `false`): Set
+  to `true` to wait until all content has been received before it
+  renders to the screen.
+
+        <preference name="SuppressesIncrementalRendering" value="true"/>
+
+- `GapBetweenPages` (float, defaults to `0`): The size of the gap, in points, between pages.
+
+        <preference name="GapBetweenPages" value="0"/>
+
+- `PageLength` (float, defaults to `0`): The size of each page, in points, in the 
+  direction that the pages flow. When PaginationMode is right to left or left to right, 
+  this property represents the width of each page. When PaginationMode is topToBottom 
+  or bottomToTop, this property represents the height of each page. The default value 
+  is 0, which means the layout uses the size of the viewport to determine the dimensions
+  of the page.
+
+        <preference name="PageLength" value="0"/>
+
+- `PaginationBreakingMode` (string, defaults to `page`): Valid values are `page` and 
+  `column`.The manner in which column- or page-breaking occurs. This property 
+  determines whether certain CSS properties regarding column- and page-breaking are 
+  honored or ignored. When this property is set to `column`,  the content respects
+  the CSS properties related to column-breaking in place of page-breaking.
+
+        <preference name="PaginationBreakingMode" value="page"/>
+
+- `PaginationMode` (string, defaults to `unpaginated`): Valid values are `unpaginated`,
+  `leftToRight`, `topToBottom`, `bottomToTop`, and `rightToLeft`. This property determines 
+  whether content in the web view is broken up into pages that fill the view one screen 
+  at a time, or shown as one long scrolling view. If set to a paginated form, this 
+  property toggles a paginated layout on the content, causing the web view to use the 
+  values of PageLength and GapBetweenPages to relayout its content.
+
+        <preference name="PaginationMode" value="unpaginated"/>
+
+- `UIWebViewDecelerationSpeed` (string, defaults to `normal`): Valid values are `normal`,
+  `fast`. This property controls the deceleration speed of momentum scrolling. `normal` is
+  the default speed for most native apps, and `fast` is the default for Mobile Safari.
+
+        <preference name="UIWebViewDecelerationSpeed" value="fast" />
+
+- `ErrorUrl` (string, not set by default):
+  If set, will display the referenced local page upon an error in the application.
+
+        <preference name="ErrorUrl" value="myErrorPage.html"/>
+
+- `OverrideUserAgent` (string, not set by default):
+  If set, the value will replace the old UserAgent of webview.
+  It is helpful to identify the request from app/browser when requesting remote pages.
+  Use with caution, this may causes compitiable issue with web servers.
+  For most cases, use AppendUserAgent instead.
+
+        <preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
+
+- `AppendUserAgent` (string, not set by default):
+  If set, the value will append to the end of old UserAgent of webview.
+  When using with OverrideUserAgent, this value will be ignored.
+
+        <preference name="OverrideUserAgent" value="My Browser" />
+
+
diff --git a/docs/en/5.1.1/guide/platforms/ios/index.md b/docs/en/5.1.1/guide/platforms/ios/index.md
new file mode 100644
index 0000000..ff8964b
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ios/index.md
@@ -0,0 +1,260 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for iOS devices such as iPhone and iPad. See the
+following for more detailed platform-specific information:
+
+* iOS Configuration
+* Upgrading iOS
+* iOS WebViews
+* iOS Plugins
+* iOS Command-line Tools
+
+The command-line tools above refer to versions prior to Cordova 3.0.
+See The Command-Line Interface for information about the
+current interface.
+
+## Requirements and Support
+
+Apple® tools required to build iOS applications run only on the OS X
+operating system on Intel-based Macs. Xcode® 6.0 (the minimum required
+version) runs only on OS X version 10.9 (Mavericks) or greater, and
+includes the iOS 8 SDK (Software Development Kit).  To submit apps to
+the Apple App Storeâ„  requires the latest versions of the Apple tools.
+
+You can test many of the Cordova features using the iOS emulator
+installed with the iOS SDK and Xcode, but you need an actual device to
+fully test all of the app's device features before submitting to the
+App Store.  The device must have at least iOS 6.x installed, the
+minimum iOS version supported as of Cordova 3.0.  Supporting devices
+include all iPad® models, iPhone® 3GS and above, and iPod® Touch 3rd
+Generation or later. To install apps onto a device, you must also be a
+member of Apple's
+[iOS Developer Program](https://developer.apple.com/programs/ios/),
+which costs $99 per year. This guide shows how to deploy apps to the
+iOS emulator, for which you don't need to register with the developer
+program.
+
+The [ios-sim](https://www.npmjs.org/package/ios-sim) and 
+[ios-deploy](https://www.npmjs.org/package/ios-deploy) tools - allows you
+to launch iOS apps into the iOS Simulator and iOS Device from the command-line.
+
+## Install the SDK
+
+There are two ways to download Xcode:
+
+* from the [App Store](https://itunes.apple.com/us/app/xcode/id497799835?mt=12),
+  available by searching for "Xcode" in the __App Store__ application.
+
+* from [Apple Developer Downloads](https://developer.apple.com/downloads/index.action),
+  which requires registration as an Apple Developer.
+
+Once Xcode is installed, several command-line tools need to be enabled
+for Cordova to run. From the __Xcode__ menu, select __Preferences__,
+then the __Downloads__ tab. From the __Components__ panel, press the
+__Install__ button next to the __Command Line Tools__ listing.
+
+## Install Deploy Tools
+
+Run from comman-line terminal:
+
+        $ npm install -g ios-sim
+        $ npm install -g ios-deploy
+
+## Create a New Project
+
+Use the `cordova` utility to set up a new project, as described in The
+Cordova The Command-Line Interface. For example, in a source-code directory:
+
+        $ cordova create hello com.example.hello "HelloWorld"
+        $ cd hello
+        $ cordova platform add ios
+        $ cordova prepare              # or "cordova build"
+
+## Deploy the app
+
+To deploy the app on a connected iOS device:
+
+        $ cordova run ios --device
+To deploy the app on a default iOS emulator:
+
+        $ cordova emulate ios
+
+You can use __cordova run ios --list__ to see all available targets and 
+__cordova run ios --target=target_name__ to run application on a specific 
+device or emulator (for example,  `cordova run ios --target="iPhone-6"`).
+
+You can also use __cordova run --help__ to see additional build and run
+options.
+
+## Open a Project in the SDK
+
+Once ios platform is added to your project, you can open it from 
+within Xcode. Double-click to open the `hello/platforms/ios/hello.xcodeproj`
+file. The screen should look like this:
+
+![](img/guide/platforms/ios/helloworld_project.png)
+
+## Deploy to Emulator
+
+To preview the app in the iOS emulator:
+
+1. Make sure the _.xcodeproj_ file is selected in the left panel.
+
+2. Select the __hello__ app in the panel immediately to the right.
+
+3. Select the intended device from the toolbar's __Scheme__ menu, such
+   as the iPhone 6.0 Simulator as highlighted here:
+
+   ![](img/guide/platforms/ios/select_xcode_scheme.png)
+
+4. Press the __Run__ button that appears in the same toolbar to the
+   left of the __Scheme__. That builds, deploys and runs the
+   application in the emulator. A separate emulator application opens
+   to display the app:
+
+   ![](img/guide/platforms/ios/HelloWorldStandard.png)
+
+   Only one emulator may run at a time, so if you want to test the app
+   in a different emulator, you need to quit the emulator application
+   and run a different target within Xcode.
+
+Xcode comes bundled with emulators for the latest versions of iPhone
+and iPad. Older versions may be available from the __Xcode &rarr;
+Preferences &rarr; Downloads &rarr; Components__ panel.
+
+## Deploy to Device
+
+For details about various requirements to deploy to a device, refer
+to the _Configuring Development and Distribution Assets_ section of
+Apple's
+[Tools Workflow Guide for iOS](http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/00-About_the_iOS_Application_Development_Workflow/introduction.html#//apple_ref/doc/uid/TP40007959).
+Briefly, you need to do the following before deploying:
+
+1. Join the Apple iOS Developer Program.
+
+2. Create a _Provisioning Profile_ within the
+   [iOS Provisioning Portal](https://developer.apple.com/ios/manage/overview/index.action).
+   You can use its _Development Provisioning Assistant_ to create and
+   install the profile and certificate Xcode requires.
+
+3. Verify that the _Code Signing_ section's _Code Signing Identity_
+   within the project settings is set to your provisioning profile
+   name.
+
+To deploy to the device:
+
+1. Use the USB cable to plug the device into your Mac.
+
+2. Select the name of the project in the Xcode window's __Scheme__
+   drop-down list.
+
+3. Select your device from the __Device__ drop-down list. If it is
+   plugged in via USB but still does not appear, press the
+   __Organizer__ button to resolve any errors.
+
+4. Press the __Run__ button to build, deploy and run the application
+   on your device.
+
+## Common Problems
+
+__Deprecation Warnings__: When an application programming interface
+(API) is changed or replaced by another API, it is marked as
+_deprecated_.  The API still works in the near term, but is eventually
+removed.  Some of these deprecated interfaces are reflected in Apache
+Cordova, and Xcode issues warnings about them when you build and
+deploy an application.
+
+Xcode's warning about the `invokeString` method concerns functionality
+that launches an app from a custom URL. While the mechanism to load
+from a custom URL has changed, this code is still present to provide
+backwards functionality for apps created with older versions of
+Cordova.  The sample app does not use this functionality, so these
+warnings can be ignored.  To prevent these warnings from appearing,
+remove the code that references the deprecated invokeString API:
+
+* Edit the _Classes/MainViewController.m_ file, surround the following
+  block of code with `/*` and `*/` comments as shown below, then type
+  __Command-s__ to save the file:
+
+        (void)webViewDidFinishLoad:(UIWebView*)theWebView
+        {
+        // only valid if ___PROJECTNAME__-Info.plist specifies a protocol to handle
+        /*
+        if (self.invokeString) {
+          // this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready
+          NSLog(@"DEPRECATED: window.invokeString - use the window.handleOpenURL(url) function instead, which is always called when the app is launched through a custom scheme url.");
+          NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString];
+          [theWebView stringByEvaluatingJavaScriptFromString:jsString];
+        }
+        */
+        // Black base color for background matches the native apps
+        theWebView.backgroundColor = [UIColor blackColor];
+
+        return [super webViewDidFinishLoad:theWebView];
+        }
+
+* Edit the _Classes/AppViewDelegate.m_ file, comment out the following
+  line by inserting a double slash as shown below, then type
+  __Command-s__ to save the file:
+
+        //self.viewController.invokeString = invokeString;
+
+* Press __Command-b__ to rebuild the project and eliminate the warnings.
+
+<!-- Does this fix only last until the next "cordova prepare"? -->
+
+__Missing Headers__: Compilation errors relating to missing headers
+result from problems with the build location, and can be fixed 
+via Xcode preferences:
+
+1. Select __Xcode &rarr; Preferences &rarr; Locations__.
+
+2. In the __Derived Data__ section, press the __Advanced__ button and
+   select __Unique__ as the __Build Location__ as shown here:
+
+   ![](img/guide/platforms/ios/xcode_build_location.png)
+
+This is the default setting for a new Xcode install, but it may be set
+differently following an upgrade from an older version of Xcode.
+
+For further information, consult Apple's documentation:
+
+*  [Start Developing iOS Apps Today](http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/index.html#//apple_ref/doc/uid/TP40011343) provides a quick overview of steps for developing iOS Apps.
+
+* [Member Center home page](https://developer.apple.com/membercenter/index.action)
+   provides links to several iOS technical resources including
+   technical resources, the provisioning portal, distribution guides
+   and community forums.
+
+* [Tools Workflow Guide for iOS](http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/00-About_the_iOS_Application_Development_Workflow/introduction.html#//apple_ref/doc/uid/TP40007959)
+
+* [Xcode User Guide](http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/000-About_Xcode/about.html#//apple_ref/doc/uid/TP40010215)
+
+* [Session Videos](https://developer.apple.com/videos/wwdc/2012/) from
+  the Apple World Wide Developer Conference 2012 (WWDC2012)
+
+* The [xcode-select command](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html),
+  which helps specify the correct version of Xcode if more than one is installed.
+
+(Mac®, OS X®, Apple®, Xcode®, App Storeâ„ , iPad®, iPhone®, iPod® and  Finder® are Trademarks of Apple Inc.)
+
diff --git a/docs/en/5.1.1/guide/platforms/ios/plugin.md b/docs/en/5.1.1/guide/platforms/ios/plugin.md
new file mode 100644
index 0000000..043deb7
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ios/plugin.md
@@ -0,0 +1,246 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# iOS Plugins
+
+This section provides details for how to implement native plugin code
+on the iOS platform. Before reading this, see Application Plugins for
+an overview of the plugin's structure and its common JavaScript
+interface. This section continues to demonstrate the sample _echo_
+plugin that communicates from the Cordova webview to the native
+platform and back.
+
+An iOS plugin is implemented as an Objective-C class that extends the
+`CDVPlugin` class.  For JavaScript's `exec` method's `service`
+parameter to map to an Objective-C class, each plugin class must be
+registered as a `<feature>` tag in the named application directory's
+`config.xml` file.
+
+## Plugin Class Mapping
+
+The JavaScript portion of a plugin uses the `cordova.exec` method as
+follows:
+
+        exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
+
+This marshals a request from the `UIWebView` to the iOS native side,
+effectively calling the `action` method on the `service` class, with
+the arguments passed in the `args` array.
+
+Specify the plugin as a `<feature>` tag in your Cordova-iOS
+application's project's `config.xml` file, using the `plugin.xml` file
+to inject this markup automatically, as described in Application
+Plugins:
+
+        <feature name="LocalStorage">
+            <param name="ios-package" value="CDVLocalStorage" />
+        </feature>
+
+The feature's `name` attribute should match what you specify as the
+JavaScript `exec` call's `service` parameter. The `value` attribute
+should match the name of the plugin's Objective-C class. The `<param>`
+element's `name` should always be `ios-package`.  If you do not follow
+these guidelines, the plugin may compile, but Cordova may still not be
+able to access it.
+
+## Plugin Initialization and Lifetime
+
+One instance of a plugin object is created for the life of each
+`UIWebView`. Plugins are ordinarily instantiated when first referenced
+by a call from JavaScript. Otherwise they can be instantiated by
+setting a `param` named `onload` to `true` in the `config.xml` file:
+
+        <feature name="Echo">
+            <param name="ios-package" value="Echo" />
+            <param name="onload" value="true" />
+        </feature>
+
+There is _no_ designated initializer for plugins. Instead, plugins
+should use the `pluginInitialize` method for their startup logic.
+
+Plugins with long-running requests, background activity such as media
+playback, listeners, or that maintain internal state should implement
+the `onReset` method to clean up those activities. The method runs
+when the `UIWebView` navigates to a new page or refreshes, which
+reloads the JavaScript.
+
+## Writing an iOS Cordova Plugin
+
+A JavaScript call fires off a plugin request to the native side, and
+the corresponding iOS Objective-C plugin is mapped properly in the
+`config.xml` file, but what does the final iOS Objective-C plugin
+class look like?  Whatever is dispatched to the plugin with
+JavaScript's `exec` function is passed into the corresponding plugin
+class's `action` method. A plugin method has this signature:
+
+        - (void)myMethod:(CDVInvokedUrlCommand*)command
+        {
+            CDVPluginResult* pluginResult = nil;
+            NSString* myarg = [command.arguments objectAtIndex:0];
+
+            if (myarg != nil) {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
+            } else {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"];
+            }
+            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+        }
+
+For more details, see
+ `[CDVInvokedUrlCommand.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h)`,
+ `[CDVPluginResult.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPluginResult.h)`,
+and
+ `[CDVCommandDelegate.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h)`.
+
+## iOS CDVPluginResult Message Types
+
+You can use `CDVPluginResult` to return a variety of result types back to
+the JavaScript callbacks, using class methods that follow this pattern:
+
+        + (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAs...
+
+You can create `String`, `Int`, `Double`, `Bool`, `Array`,
+`Dictionary`, `ArrayBuffer`, and `Multipart` types. You can also leave
+out any arguments to send a status, or return an error, or even choose
+not to send any plugin result, in which case neither callback fires.
+
+Note the following for complex return values:
+
+- `messageAsArrayBuffer` expects `NSData*` and converts to an
+  `ArrayBuffer` in the JavaScript callback. Likewise, any
+  `ArrayBuffer` the JavaScript sends to a plugin are converted to
+  `NSData*`.
+
+- `messageAsMultipart` expects an `NSArray*` containing any of the
+  other supported types, and sends the entire array as the `arguments`
+  to your JavaScript callback.  This way, all of the arguments are
+  serialized or deserialized as necessary, so it is safe to return
+  `NSData*` as multipart, but not as `Array`/`Dictionary`.
+
+## Echo iOS Plugin Example
+
+To match the JavaScript interface's _echo_ feature described in
+Application Plugins, use the `plugin.xml` to inject a `feature`
+specification to the local platform's `config.xml` file:
+
+        <platform name="ios">
+            <config-file target="config.xml" parent="/*">
+                <feature name="Echo">
+                    <param name="ios-package" value="Echo" />
+                </feature>
+            </config-file>
+        </platform>
+
+
+Then we would add the following `Echo.h` and `Echo.m` files to the
+`Plugins` folder within the Cordova-iOS application directory:
+
+        /********* Echo.h Cordova Plugin Header *******/
+
+        #import <Cordova/CDV.h>
+
+        @interface Echo : CDVPlugin
+
+        - (void)echo:(CDVInvokedUrlCommand*)command;
+
+        @end
+
+        /********* Echo.m Cordova Plugin Implementation *******/
+
+        #import "Echo.h"
+        #import <Cordova/CDV.h>
+
+        @implementation Echo
+
+        - (void)echo:(CDVInvokedUrlCommand*)command
+        {
+            CDVPluginResult* pluginResult = nil;
+            NSString* echo = [command.arguments objectAtIndex:0];
+
+            if (echo != nil && [echo length] > 0) {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
+            } else {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
+            }
+
+            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+        }
+
+        @end
+
+The necessary imports at the top of the file extends the class from
+`CDVPlugin`.  In this case, the plugin only supports a single `echo`
+action. It obtains the echo string by calling the `objectAtIndex`
+method get the first parameter of the `arguments` array, which
+corresponds to the arguments passed in by the JavaScript `exec()`
+function.
+
+It checks the parameter to make sure it is not `nil` or an empty
+string, returning a `PluginResult` with an `ERROR` status if so.  If
+the parameter passes the check, it returns a `PluginResult` with an
+`OK` status, passing in the original `echo` string.  Finally, it sends
+the result to `self.commandDelegate`, which executes the `exec`
+method's success or failure callbacks on the JavaScript side. If the
+success callback is called, it passes in the `echo` parameter.
+
+## iOS Integration
+
+The `CDVPlugin` class features other methods that your plugin can
+override.  For example, you can capture the `pause`, `resume`, app
+terminate and `handleOpenURL` events. See the
+[CDVPlugin.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h)
+and
+[CDVPlugin.m](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m)
+class for guidance.
+
+## Threading
+
+Plugin methods ordinarily execute in the same thread as the main
+interface. If your plugin requires a great deal of processing or
+requires a blocking call, you should use a background thread. For
+example:
+
+        - (void)myPluginMethod:(CDVInvokedUrlCommand*)command
+        {
+            // Check command.arguments here.
+            [self.commandDelegate runInBackground:^{
+                NSString* payload = nil;
+                // Some blocking logic...
+                CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload];
+                // The sendPluginResult method is thread-safe.
+                [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+            }];
+        }
+
+## Debugging iOS Plugins
+
+To debug on the Objective-C side, you need Xcode's built-in debugger.
+For JavaScript, on iOS 5.0 or greater you can use [Weinre, an Apache Cordova
+Project](https://github.com/apache/cordova-weinre) or [iWebInspector,
+a third-party utility](http://www.iwebinspector.com/).  For iOS 8, you
+can attach Safari 8.0 to the app running within the iOS 8 Simulator.
+
+## Common Pitfalls
+
+- Don't forget to add your plugin's mapping to `config.xml`. If you
+  forget, an error is logged in the Xcode console.
+
+- Don't forget to add any hosts you connect to in the whitelist, as
+  described in Domain Whitelist Guide. If you forget, an error is
+  logged in the Xcode console.
diff --git a/docs/en/5.1.1/guide/platforms/ios/tools.md b/docs/en/5.1.1/guide/platforms/ios/tools.md
new file mode 100644
index 0000000..a0042c1
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ios/tools.md
@@ -0,0 +1,100 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS Shell Tool Guide
+
+This guide shows how to use Cordova's set of platform-centered shell
+tools to develop iOS apps. This development path, discussed in the
+Overview, may offer you a greater range of development options for iOS
+than the cross-platform CLI tool described in The Command-Line
+Interface.  For example, you need to use shell tools when deploying a
+custom Cordova WebView alongside native components. Before using
+either development path, you must first configure the SDK environment
+as described in the iOS Platform Guide.  These tools rely upon
+Xcode's command-line tools such as `xcode-select` and `xcodebuild`.
+
+To enable shell tools for iOS, download Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand each you wish to target,
+`ios` in this case. The relevant tools are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+These tools allow you to create, build, and run iOS apps.  For
+information on the additional command-line interface that enables
+plugin features across all platforms, see Using Plugman to Manage
+Plugins. See Application Plugins for details on how to develop
+plugins.
+
+## Create a Project
+
+Run the `create` command, specifying the existing path to the project,
+the reverse-domain-style package identifier, and the app's display
+name.
+
+        $ ./path/to/cordova-ios/bin/create /path/to/my_new_project com.example.project_name ProjectName
+
+## Build a Project
+
+        $ /path/to/my_new_project/cordova/build
+
+## Run App on an Emulator
+
+        $ /path/to/my_new_project/cordova/run --emulator
+
+## Run App on a Device
+
+        $ /path/to/my_new_project/cordova/run --device
+
+## Signing the App
+
+You can learn more about signing, distributing iOS apps, creating a certificate and provisioning profile on the [iOS Developer Library](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html).
+
+To sign the app in Cordova you need the following:
+* Code signing identity (`--codeSignIdentity`): [Using XCode](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW6) you can create a new iOS signing identity and add it to your keychain. The type of of the code signing identity - typically distribution or development, needs to be specified here.
+
+* Provisioning profile (`--provisioningProfile`):  [Using the Apple Member Center](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html#//apple_ref/doc/uid/TP40012582-CH30-SW61) you can create a provisioning profile. Download the provisioning profile onto your machine and launch it in XCode to register it. It is copied here on your Mac: ~/Library/MobileDevice/Provisioning\ Profiles/. Opening it in a text editor, you can find the UUID which needs to be specified here.
+
+* Code signing resource rules(`--codeSignResourceRules`) (Optional): Allows you to specify custom signing resource rules.
+
+These parameters can be specified using the command line arguments above to `build` or `run` scripts:
+
+        $ /path/to/my_new_project/cordova/build --codeSignIdentitiy="iPhone Distribtion" --provisioningProfile="926c2bd6-8de9-4c2f-8407-1016d2d12954" 
+
+Alternatively, you could specify them in a build configuration file (build.json) using (`--buildConfig`) argument. Here's a sample of a build configuration file:
+
+    {
+         "ios": {
+             "debug": {
+                 "codeSignIdentitiy": "iPhone Development",
+                 "provisioningProfile": "926c2bd6-8de9-4c2f-8407-1016d2d12954",
+             },
+             "release": {
+                 "codeSignIdentitiy": "iPhone Distribution"
+                 "provisioningProfile": "70f699ad-faf1-4adE-8fea-9d84738fb306",
+             }
+         }
+     }
+
+There is also support to mix and match command line arguments and parameters in build.json file. Values from the command line arguments will get precedence. 
+
+## Logging
+
+        $ /path/to/my_new_project/cordova/log
+
diff --git a/docs/en/5.1.1/guide/platforms/ios/upgrade.md b/docs/en/5.1.1/guide/platforms/ios/upgrade.md
new file mode 100644
index 0000000..839ee9b
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ios/upgrade.md
@@ -0,0 +1,804 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading iOS
+
+This guide shows how to modify iOS projects to upgrade from older
+versions of Cordova.  Most of these instructions apply to projects
+created with an older set of command-line tools that precede the
+`cordova` CLI utility. See The Command-Line Interface for information
+how to update the version of the CLI.
+
+__NOTE__: Xcode 6 is required. Currently, to submit to the
+Apple App Store, you should use the latest shipped version of the iOS SDK, which is iOS 8 and this is included only with Xcode 6.
+
+## Upgrading 3.6.0 Projects to 4.0.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios` in your existing projects.
+
+
+## Upgrading 3.3.0 Projects to 3.4.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+
+## Upgrading 3.2.0 Projects to 3.3.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+
+## Upgrading 3.1.0 Projects to 3.2.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+        
+
+## Upgrading 3.0.0 Projects to 3.1.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+        
+iOS 7 Issues:
+
+1. Remove `width=device-width, height=device-height` from the
+   `index.html` file's `viewport` `meta` tag. (See [the relevant
+   bug](https://issues.apache.org/jira/browse/CB-4323).)
+
+2. Update your media, media-capture and splashscreen core plugins for
+   iOS 7 support.
+
+Xcode 5 Issues:
+
+1. Update your Project Settings if Xcode 5 prompts you to do so (in the Issues Navigator).
+
+2. Update your __Compiler for C/C++/Objective-C__ setting, under the
+   __Build Settings__ tab, __Build Options__ section. Choose __Default
+   compiler (Apple LLVM 5.0)__.
+
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add ios`.
+
+3. Copy the contents of the project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`Resources`, etc.), making sure to add any
+   new files to the `.xcodeproj` project. The iOS project builds
+   inside the `platforms\ios` directory.
+
+5. Copy the `config.xml` into the `www` directory, and remove any plugin
+   definitions. Modify settings here instead of the platform directory.
+
+6. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+7. Build and test.
+
+## Upgrading 2.9.0 Projects to 3.0.0
+
+1. Download and extract the Cordova 3.0.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-3.0.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into the `www` directory, and delete the `www/cordova.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+__NOTE__: Starting with Cordova 3.0.0, plugins are not pre-installed,
+and you need to use the `plugman` command-line utility to install them
+yourself. See Using Plugman to Manage Plugins.
+
+## Upgrading 2.8.0 Projects to 2.9.0
+
+1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.9.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into the `www` directory, and delete the `www/cordova.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.7.0 Projects to 2.8.0
+
+1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.8.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into the `www` directory, and delete the `www/cordova-2.7.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Update any `<plugin>` tags in the `config.xml` file to `<feature>`
+   tags. Note that existing `<plugin>` tags still work, but are
+   deprecated. You can copy this information in the `config.xml` file
+   for a new project. For example:
+
+        <plugins>
+            <plugin name="LocalStorage" value="CDVLocalStorage" />
+            <!-- other plugins -->
+        </plugins>
+        
+        <!-- change to: (note that a <feature> tag is on the same level as <plugins> -->
+        <feature name="LocalStorage">
+    	    <param name="ios-package" value="CDVLocalStorage" />
+    	</feature>
+    	<!-- other <feature> tags -->
+        
+
+8. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+9. Add these two frameworks to your project:
+        
+        OpenAL
+        ImageIO
+
+10. Update your project's target __Build Settings__. Under __Linking &rarr; Other Linker Flags__, edit __"-Obj-C"__ to be __"-ObjC"__.
+
+11. Update your project's target __Build Settings__. Under __Linking &rarr; Other Linker Flags__, change __"-all\_load"__ to be `-force\_load ${BUILT\_PRODUCTS\_DIR}/libCordova.a`. You would only need to do this if you have the problem defined in [this issue.](https://issues.apache.org/jira/browse/CB-3458).
+
+## Upgrading 2.6.0 Projects to 2.7.0
+
+1. Download and extract the Cordova 2.7.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.7.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. you need the assets from this new project.
+
+5. Copy the `www/cordova-2.7.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.6.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.7.0.js` file.
+
+7. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=5c05ac80e056753c0e8736f887ba9f28d5b0774c;hp=623ad8ec3c46f656ea18c6c3a190d650dd64e479;hb=c6e71147386d4ad94b07428952d1aae0a9cbf3f5;hpb=c017fda8af00375a453cf27cfc488647972e9a23)).
+
+8. In the `config.xml` file, [remove this line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=537705d76a5ef6bc5e57a8ebfcab78c02bb4110b;hp=8889726d9a8f8c530fe1371c56d858c34552992a;hb=064239b7b5fa9a867144cf1ee8b2fb798ce1f988;hpb=c9f233250d4b800f3412eeded811daaafb17b2cc).
+
+9. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.5.0 Projects to 2.6.0
+
+1. Download and extract the Cordova 2.6.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.6.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the project's `www/cordova-2.6.0.js` file into the `www` directory, and delete the `www/cordova-2.5.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (along with any other files that reference the script) to refer to the new `cordova-2.6.0.js` file.
+
+7. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=124a56bb4f361e95616f44d6d6f5a96ffa439b60;hp=318f79326176be8f16ebc93bad85dd745f4205b6;hb=a28c7712810a63396e9f32fa4eb94fe3f8b93985;hpb=36acdf55e4cab52802d73764c8a4b5b42cf18ef9)).
+
+8. In the `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=1555b5e81de326a07efe0bccaa5f5e2326b07a9a;hp=0652d60f8d35ac13c825c572dca6ed01fea4a540;hb=95f16a6dc252db0299b8e2bb53797995b1e39aa1;hpb=a2de90b8f5f5f68bd9520bcbbb9afa3ac409b96d).
+
+9. In the `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=d307827b7e67301171a913417fb10003d43ce39d;hp=04260aa9786d6d74ab20a07c86d7e8b34e31968c;hb=97b89edfae3527828c0ca6bb2f6d58d9ded95188;hpb=942d33c8e7174a5766029ea1232ba2e0df745c3f).
+
+10. In the `config.xml` file, [UIWebViewBounce has been changed to DisallowOverscroll, and default values are different](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=8889726d9a8f8c530fe1371c56d858c34552992a;hp=d307827b7e67301171a913417fb10003d43ce39d;hb=57982de638a4dce6ae130a26662591741b065f00;hpb=ec411f18309d577b4debefd9a2f085ba719701d5).
+
+10. In the `config.xml` file, the `EnableLocation` preference has been deprecated.
+
+11. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.4.0 Projects to 2.5.0
+
+1. Download and extract the Cordova 2.5.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.5.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.5.0.js` file from the new project into the `www` directory and delete the `www/cordova-2.4.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.5.0.js` file.
+
+7. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=318f79326176be8f16ebc93bad85dd745f4205b6;hp=6dc7bfc84f0ecede4cc43d2a3256ef7c5383b9fe;hb=4001ae13fcb1fcbe73168327630fbc0ce44703d0;hpb=299a324e8c30065fc4511c1fe59c6515d4842f09)).
+
+8. In the `config.xml` file, [add these new lines](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=903944c4b1e58575295c820e154be2f5f09e6314;hp=721c734120b13004a4a543ee25f4287e541f34be;hb=ae467249b4a256bd31ee89aea7a06f4f2316b8ac;hpb=9e39f7ef8096fb15b38121ab0e245a3a958d9cbb).
+
+9. In the `config.xml` file, [edit the root element, change it from cordova to widget](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=64e71636f5dd79fa0978a97b9ff5aa3860a493f5;hp=d8579352dfb21c14e5748e09b2cf3f4396450163;hb=0e711f8d09377a7ac10ff6be4ec17d22cdbee88d;hpb=57c3c082ed9be41c0588d0d63a1d2bfcd2ed878c).
+
+10. In the `config.xml` file, [remove the OpenAllWhitelistURLsInWebView preference](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=721c734120b13004a4a543ee25f4287e541f34be;hp=7d67508b70914aa921a16e79f79c00512502a8b6;hb=187bf21b308551bfb4b98b1a5e11edf04f699791;hpb=03b8854bdf039bcefbe0212db937abd81ac675e4).
+
+11. Delete the `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.5.0, this has updated scripts.
+
+12. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.3.0 Projects to 2.4.0
+
+1. Download and extract the Cordova 2.4.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.4.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.4.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.3.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.4.0.js` file.
+
+7. Update (or replace, if you never changed the files) the `MainViewController.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/MainViewController.m;h=5f9eeac15c2437cd02a6eb5835b48374e9b94100;hp=89da1082d06ba5e5d0dffc5b2e75a3a06d5c2aa6;hb=b4a2e4ae0445ba7aec788090dce9b822d67edfd8;hpb=a484850f4610e73c7b20cd429a7794ba829ec997)).
+
+8. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=6dc7bfc84f0ecede4cc43d2a3256ef7c5383b9fe;hp=1ca3dafeb354c4442b7e149da4f281675aa6b740;hb=6749c17640c5fed8a7d3a0b9cca204b89a855baa;hpb=deabeeb6fcb35bac9360b053c8bf902b45e6de4d)).
+
+9. In the `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=7d67508b70914aa921a16e79f79c00512502a8b6;hp=337d38da6f40c7432b0bce05aa3281d797eec40a;hb=6749c17640c5fed8a7d3a0b9cca204b89a855baa;hpb=deabeeb6fcb35bac9360b053c8bf902b45e6de4d).
+
+10. Delete the `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.4.0, this has fixed scripts.
+
+11. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+12. Add AssetsLibrary.framework as a resource to your project.  (See [Apple's documentation](https://developer.apple.com/library/ios/#recipes/xcode_help-project_editor/Articles/AddingaLibrarytoaTarget.html) for instructions on how to do so.).
+
+## Upgrading 2.2.0 Projects to 2.3.0
+
+1. Download and extract the Cordova 2.3.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.3.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.3.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.2.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.3.0.js` file.
+
+7. Update (or replace, if you never changed the file) the `MainViewController.m` according to the one from the new project.
+
+8. Delete the `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.3.0, this has new scripts.
+
+9. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+10. Convert the `Cordova.plist` file to `config.xml`, by running the script `bin/cordova\_plist\_to\_config\_xml` on your project file.
+
+11. Add the InAppBrowser plugin to the `config.xml`, by adding this tag under `<cordova><plugins>`:
+
+        <plugin name="InAppBrowser" value="CDVInAppBrowser" />
+
+12. Note that Objective-C plugins are _not_ whitelisted anymore. To whitelist your connections with the app whitelist, you need to set the `User-Agent` header of the connection to the same user-agent as the main Cordova WebView.
+You can get this by accessing the `userAgent` property off the main view-controller. The main view-controller (`CDVViewController`) also has a `URLisAllowed` method for you to check whether a URL passes the whitelist.
+
+13. Device API changes:
+    - For iOS, device.platform used to return `iPhone`, `iPad` or `iPod Touch`; now it returns (correctly) `iOS`.
+    - For iOS, device.name (now deprecated for all platforms) used to return the name of the user’s device (e.g. ‘Shazron’s iPhone 5′); now it returns what device.platform used to return: `iPhone`, `iPad` or `iPod Touch`.
+    - For all platforms, there is a new property called device.model; this returns the specific device model, e.g. `iPad2,5` (for other platforms, this returns what device.name used to return).
+
+## Upgrading 2.1.0 Projects to 2.2.0
+
+1. Download and extract the Cordova 2.2.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.2.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.2.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.1.0.js` file.
+
+6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.2.0.js` file.
+
+7. Update (or replace, if you never changed the file) the `MainViewController.m` according to the one from the new project:
+    - Updated &rarr; viewWillAppear
+
+8. Copy the `cordova` directory from the new project into your project's root directory. In 2.2.0, this has an updated 'emulate' script.
+
+9. Next, update the `CordovaLib` sub-project reference. Beginning with Cordova 2.1.0, we are not using the CORDOVALIB Xcode variable anymore when referencing where `CordovaLib` resides, the reference is an absolute file reference now.
+    1. Launch Terminal.app
+    2. Go to the location where you installed Cordova (see Step 1), in the `bin` subdirectory
+    3. Run the script below where the first parameter is the path to your project's `.xcodeproj` file:
+
+        `update_cordova_subproject path/to/your/project/xcodeproj`
+
+__NOTE__: In 2.2.0, the `bin/create` script copy in the `CordovaLib` sub-project into your project. To have the same kind of setup, just copy in the right `CordovaLib` into your project directory, and update the `CordovaLib` sub-project location (relative to the project) in the Xcode File Inspector.
+
+## Upgrading 2.0.0 Projects to 2.1.0
+
+With Cordova 2.1.0, `CordovaLib` has been upgraded to use __Automatic Reference Counting (ARC)__. You don't need to upgrade to __ARC__ to use CordovaLib, but if you want to upgrade your project to use __ARC__, please use the Xcode migration wizard from the menu: __Edit &rarr; Refactor &rarr; Convert to Objective-C ARC...__, de-select libCordova.a, then run the wizard to completion.
+
+1. Download and extract the Cordova 2.1.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.1.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+5. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+6. Copy the `www/cordova-2.1.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.0.0.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.1.0.js` file.
+
+8. Update (or replace, if you never changed the file) the `AppDelegate.m` according to the one from the new project:
+    - Edited &rarr; application:didFinishLaunchingWithOptions:
+	- Added  &rarr; application:supportedInterfaceOrientationsForWindow:
+
+9. Update (or replace, if you never changed the file) the `MainViewController.m` according to the one from the new project:
+    - Added &rarr; viewWillAppear
+
+10. Copy the `cordova` directory from the new project into your project's root directory. In 2.1.0, this has the updated scripts to support paths with spaces.
+
+11. Remove the `VERSION` file reference from your project (_not_ the one in `CordovaLib`).
+
+12. Next, update the `CordovaLib` sub-project reference. Beginning with Cordova 2.1.0, we are not using the CORDOVALIB Xcode variable anymore when referencing where `CordovaLib` resides, the reference is an absolute file reference now.
+    1. Launch Terminal.app
+    2. Go to the location where you installed Cordova (see Step 1), in the `bin` subdirectory
+    3. Run the script below where the first parameter is the path to your project's `.xcodeproj` file:
+
+        `update_cordova_subproject path/to/your/project/xcodeproj`
+
+## Upgrading 1.9.0 Projects to 2.0.0
+
+1. Install Cordova 2.0.0.
+
+2. Create a new project, as described in iOS Shell Tool Guide. You need the assets from this new project.
+
+3. Copy the `www/cordova-2.0.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.9.0.js` file.
+
+4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.0.0.js` file.
+
+5. Copy the `cordova` directory from the new project into your project's root directory (if you want the project command-line tools).
+
+6. Add a new entry under `Plugins` in the `Cordova.plist` file, under
+   the __Supporting Files__ group. The key is `Device` and the value
+   is `CDVDevice`.
+
+7. Remove `Cordova.framework`.
+
+8. Remove `verify.sh` from the __Supporting Files__ group.
+
+9. Select the project icon in the Project Navigator, select your project __Target__, then select the __Build Settings__ tab.
+
+10. Search for __Preprocessor Macros__, then remove all __CORDOVA_FRAMEWORK=1__ values.
+
+11. Locate the `CordovaLib` directory that was installed in your hard-drive under your home folder's `Documents` subdirectory.
+
+12. Locate the `CordovaLib.xcodeproj` file in the `CordovaLib` directory, then drag and drop the file into your project. It should appear as a sub-project.
+
+13. Build your project, you should get some errors relating to `#import` directives.
+
+14. For the `#import` errors, change any quote-based imports in this style:
+
+        #import "CDV.h"
+
+    to this brackets-based style:
+
+        #import <Cordova/CDV.h>
+
+    and remove any `#ifdef` wrappers around any Cordova imports, they are not needed anymore (the imports are now unified)
+
+15. Build your project again, and it should not have any `#import` errors.
+
+16. Select the __project icon__ in the Project Navigator, select your project __Target__, then select the __Build Phases__ tab.
+
+17. Expand the __Target Dependencies__ phase, then select the __+__ button.
+
+18. Select the `CordovaLib` target, then select the __Add__ button.
+
+19. Expand the first __Link Binary with Libraries__ phase (it should already contain a bunch of frameworks), then select the __+__ button.
+
+20. Select the `libCordova.a` static library, then select the __Add__ button.
+
+21. Delete the __Run Script__ phase.
+
+22. Select the __project icon__ in the Project Navigator, select your project __Target__, then select the __Build Settings__ tab.
+
+23. Search for __Other Linker Flags__, and add the values __-force_load__ and __-Obj-C__.
+
+24. Expand the `CordovaLib` sub-project.
+
+25. Locate the `VERSION` file, drag it into your main project (we want to create a link to it, not a copy).
+
+26. Select the __Create groups for any added folders__ radio button, then select the __Finish__ button.
+
+27. Select the `VERSION` file that you just dragged in a previous step.
+
+28. Type the __Option-Command-1__ key combination to show the __File Inspector__ (or menuitem __View &rarr; Utilities &rarr; Show File Inspector__).
+
+29. Choose __Relative to CORDOVALIB__ in the __File Inspector__ for the drop-down menu for __Location__.
+
+30. Set the Xcode preference __Xcode Preferences &rarr; Locations &rarr; Derived Data &rarr; Advanced...__ to __Unique__, so that the unified headers can be found.
+
+31. Select the __project icon__ in the Project Navigator, select your __Target__, then select the __Build Settings__ tab.
+
+32. Search for __Header Search Paths__. For that setting, append these three values, including quotes:
+
+        "$(TARGET_BUILD_DIR)/usr/local/lib/include"
+
+        "$(OBJROOT)/UninstalledProducts/include"
+
+        "$(BUILT_PRODUCTS_DIR)"
+
+33. Search for __Other Linker Flags__. For that setting, append this value:
+
+        -weak_framework CoreFoundation
+
+34. Build your project, it should compile and link with __no issues__.
+
+35. Select your project from the __Scheme__ drop-down, and then select __iPhone 5.1 Simulator__.
+
+36. Select the __Run__ button.
+
+__NOTE__: If your project is not working as expected in the Simulator, please take a note of any errors in the console log in Xcode for clues.
+
+## Upgrading 1.8.x Projects to 1.9.0
+
+1. Install Cordova 1.9.0.
+
+2. Create a new project. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.9.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.8.x.js` file.
+
+4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.9.0.js` file.
+
+__NOTE__: 1.9.0 supports the new `BackupWebStorage` boolean `Cordova.plist` setting. It's enabled by default, so set it to
+`false` to disable it, especially on iOS 6. See [Release Notes: Safari and UIKit Section](https://developer.apple.com/library/prerelease/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html)
+
+## Upgrading 1.7.0 Projects to 1.8.x
+
+1. Install Cordova 1.8.0.
+
+2. Create a new project. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.8.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.7.x.js` file.
+
+4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.8.0.js` file.
+
+If you intend on using the Capture API, you will need the new __iPad retina-display__ assets:
+
+1.  Copy the `Resources/Capture.bundle` item from the new project into your project directory, over-writing your existing `Resources/Capture.bundle` item.
+
+2.  In your project, select the `Capture.bundle` item into your Project Navigator in Xcode, type the __Delete__ key, then select __Remove Reference__ from the resulting dialog.
+
+3.  Drag the new `Capture.bundle` from Step 1 above into your Project Navigator in Xcode, then select the __Create groups for any added folders__ radio button.
+
+## Upgrading 1.6.x Projects to 1.7.0
+
+1. Install Cordova 1.7.0.
+
+2. Create a new project. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.7.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.6.0.js` file.
+
+4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.7.0.js` file.
+
+## Upgrading 1.5.0 Projects to 1.6.x
+
+1. Install Cordova 1.6.1.
+
+2. Make a backup of `AppDelegate.m`, `AppDelegate.h`, `MainViewController.m`, `MainViewController.h`, and `Cordova.plist` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.5.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        Cordova.plist
+
+5. Add all the new `MainViewController` and `AppDelegate` files into your Xcode project.
+
+6. Copy the `www/cordova-1.6.1.js` file from the new project into the `www` directory, and delete the `www/cordova-1.5.0.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.6.1.js` file.
+
+8. Add the new `Cordova.plist` file into your project. This is
+   necessary because the core plugin service names must change to
+   match the ones from Android and BlackBerry, for a unified Cordova
+   JavaScript file (`cordova-js`).
+
+9. Integrate any settings, __Plugins__ and __ExternalHosts__ entries that you had in your __backed-up Cordova.plist__ into the new `Cordova.plist`.
+
+10. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new `AppDelegate` files. Any `UIWebViewDelegate` or `CDVCommandDelegate` code in `AppDelegate.m` needs to go into `MainViewController.m` now (see commented-out sections in that file).
+
+11. Integrate any project-specific code that you have in your backed-up `MainViewController.h` and `MainViewController.m` into the new MainViewController files.
+
+12. Click on the project icon in the Project Navigator, select your __Project__, then select the __Build Settings__ tab.
+
+13. Enter __Compiler for C/C++/Objective-C__ in the search field.
+
+14. Select the __Apple LLVM Compiler 3.1__ value.
+
+## Upgrading 1.4.x Projects to 1.5.0
+
+1. Install Cordova 1.5.0.
+
+2. Create a new project and run it once. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.5.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.4.x.js` file.
+
+4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new Cordova `cordova-1.5.0.js` file.
+
+5. Find `PhoneGap.framework` in your Project Navigator, select it.
+
+6. Type the __Delete__ key and delete the `PhoneGap.framework` reference in the Project Navigator.
+
+7. Type the __Option-Command-A__ key combination, which should drop down a sheet to add files to your project (the __Add Files...__ sheet). Make sure the __Created groups for any added folders__ radio button is selected.
+
+8. Type the __Shift-Command-G__ key combination, which should drop down another sheet for you to go to a folder (the __Go to the folder:__ sheet).
+
+9. Enter `/Users/Shared/Cordova/Frameworks/Cordova.framework` in the __Go to the folder:__ sheet and then press the __Go__ button.
+
+10. Press the __Add__ button in the __Add Files...__ sheet.
+
+11. Select `Cordova.framework` in the Project Navigator.
+
+12. Type the __Option-Command-1__ key combination to show the __File Inspector__.
+
+13. Choose __Absolute Path__ in the __File Inspector__ for the drop-down menu for __Location__.
+
+14. Type the __Option-Command-A__ key combination, which should drop down a sheet to add files to your project (the __Add Files...__ sheet). Make sure the __Created groups for any added folders__ radio button is selected.
+
+15. Type the __Shift-Command-G__ key combination, which should drop down another sheet for you to go to a folder (the __Go to the folder:__ sheet).
+
+16. Enter `~/Documents/CordovaLib/Classes/deprecated` in the __Go to the folder:__ sheet and then press the __Go__ button.
+
+17. Press the __Add__ button in the __Add Files...__ sheet.
+
+18. In the `AppDelegate.h`, `AppDelegate.m`, and `MainViewController.h` files, replace the whole `#ifdef PHONEGAP_FRAMEWORK` block with:
+
+        #import "CDVDeprecated.h"
+
+19. Click on the __project icon__ in the Project Navigator, select your __Target__, then select the __Build Settings__ tab.
+
+20. Search for __Framework Search Paths__.
+
+21. Replace the existing value with `/Users/Shared/Cordova/Frameworks`.
+
+22. Search for __Preprocessor Macros__.
+
+23. For the first (combined) value, replace the value with __CORDOVA_FRAMEWORK=YES__.
+
+24. Select the __Build Phases__ tab.
+
+25. Expand __Run Script__.
+
+26. Replace any occurrences of __PhoneGap__ with __Cordova__.
+
+27. Find the `PhoneGap.plist` file in the Project Navigator, and click on the filename once to enter name edit mode.
+
+28. Rename `PhoneGap.plist` to `Cordova.plist`.
+
+29. Right-click on `Cordova.plist` and choose __Open As &rarr; Source Code__.
+
+30. Press __Option-Command-F__, choose __Replace__ from the drop-down on the top left of the Source window.
+
+31. Enter `com.phonegap` for the Find string, and `org.apache.cordova`
+    for the Replace string, then press the __Replace All__ button.
+
+32. Enter __PG__ for the Find string, and __CDV__ for the Replace
+    string, then press the __Replace All__ button.
+
+33. Press __Command-B__ to build. You still have deprecations
+    that you can get rid of in the future (see `CDVDeprecated.h`. For
+    example, replace classes in your code that use PG* to CDV*).
+
+## Upgrading 1.4.0 Projects to 1.4.1
+
+1. Install Cordova 1.4.1.
+
+2. Make a backup of `MainViewController.m`.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy the `MainViewController.m` file from the new project into your 1.4.0-based project directory on disk, replacing the old file (backup your files first from step 2 above).
+
+5. Add the `MainViewController.m` file into your Xcode project.
+
+6. Integrate any project-specific code that you have in your backed-up `MainViewController.m` into the new file.
+
+7. Updating the `phonegap-1.4.0.js` file is optional, nothing has changed in the JavaScript between 1.4.0 and 1.4.1.
+
+## Upgrading 1.3.0 Projects to 1.4.0
+
+1. Install Cordova 1.4.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.3.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.4.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.3.0.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.4.0.js` file.
+
+8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 1.2.0 Projects to 1.3.0
+
+1. Install Cordova 1.3.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.2.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.3.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.2.0.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.3.0.js` file.
+
+8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 1.1.0 Projects to 1.2.0
+
+1. Install Cordova 1.2.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.1.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.2.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.1.0.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.2.0.js` file.
+
+8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 1.0.0 Projects to 1.1.0
+
+1. Install Cordova 1.1.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.0.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.1.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.0.0.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.1.0.js` file.
+
+8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 0.9.6 Projects to 1.0.0
+
+1. Install Cordova 1.0.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 0.9.6-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.0.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-0.9.6.js` file.
+
+7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.0.0.js` file.
+
+8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
diff --git a/docs/en/5.1.1/guide/platforms/ios/webview.md b/docs/en/5.1.1/guide/platforms/ios/webview.md
new file mode 100644
index 0000000..9cde15d
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ios/webview.md
@@ -0,0 +1,179 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS WebViews
+
+This guide shows how to embed a Cordova-enabled WebView component
+within a larger iOS application. For details on how these components
+can communicate with each other, see Application Plugins.
+
+Support for iOS WebViews started with Cordova version 1.4, using a
+`Cleaver` component for which the Xcode template serves as a reference
+implementation.  Cordova 2.0 and later versions only support the
+subproject-based Cleaver implementation.
+
+These instructions require at least Cordova 3.x and Xcode 6.0, along
+with a `config.xml` file from a newly created iOS project. You can use
+the procedure in The Command-Line Interface to create a new project,
+then obtain the `config.xml` file from within the named application's
+subdirectory within `platforms/ios`.
+
+To follow these instructions, make sure you have the latest Cordova
+distribution. Download it from
+[cordova.apache.org](http://cordova.apache.org) and unzip its iOS
+package.
+
+## Adding Cleaver to the Xcode Project (CordovaLib Sub-Project)
+
+1. Quit Xcode if it is running.
+
+1. Open a terminal and navigate to the source directory for Cordova
+   iOS.
+
+1. Copy the `config.xml` file described above into the project
+   directory.
+
+1. Open Xcode and use the Finder to copy the `config.xml` file into
+   its __Project Navigator__ window.
+
+1. Choose __Create groups for any added folders__ and press
+   __Finish__.
+
+1. Use the Finder to copy the `CordovaLib/CordovaLib.xcodeproj` file
+   into Xcode's __Project Navigator__
+
+1. Select `CordovaLib.xcodeproj` within the __Project Navigator__.
+
+1. Type the __Option-Command-1__ key combination to show the __File
+   Inspector__.
+
+1. Choose __Relative to Group__ in the __File Inspector__ for the
+   drop-down menu for __Location__.
+
+1. Select the __project icon__ in the __Project Navigator__, select
+   the __Target__, then select the __Build Settings__ tab.
+
+1. Add `-force_load` and `-Obj-C` for the __Other Linker Flags__ value.
+
+1. Click on the __project icon__ in the Project Navigator, select the
+   __Target__, then select the __Build Phases__ tab.
+
+1. Expand __Link Binaries with Libraries__.
+
+1. Select the __+__ button, and add the following __frameworks__.
+   Optionally within the __Project Navigator__, move them under the
+   __Frameworks__ group:
+
+        AssetsLibrary.framework
+        CoreLocation.framework
+        CoreGraphics.framework
+        MobileCoreServices.framework
+
+1. Expand __Target Dependencies__, the top box with that label if
+   there's more than one box.
+
+1. Select the __+__ button, and add the `CordovaLib` build product.
+
+1. Expand __Link Binaries with Libraries__, the top box with that label
+  if there's more than one box.
+
+1. Select the __+__ button, and add `libCordova.a`.
+
+1. Set the __Xcode Preferences &rarr; Locations &rarr; Derived Data
+   &rarr; Advanced...__ to __Unique__.
+
+1. Select the __project icon__ in the Project Navigator, select your
+   __Target__, then select the __Build Settings__ tab.
+
+1. Search for __Header Search Paths__. For that setting, add these
+   three values below, including the quotes:
+
+        "$(TARGET_BUILD_DIR)/usr/local/lib/include"        
+        "$(OBJROOT)/UninstalledProducts/include"
+        "$(BUILT_PRODUCTS_DIR)"
+
+    As of Cordova 2.1.0, `CordovaLib` has been upgraded to use
+    __Automatic Reference Counting (ARC)__. You don't need to upgrade
+    to __ARC__ to use `CordovaLib`, but if you want to upgrade your
+    project to use __ARC__, you should use the Xcode migration wizard
+    from the __Edit &rarr; Refactor &rarr; Convert to Objective-C
+    ARC...__ menu, __de-select libCordova.a__, then run the wizard to
+    completion.
+
+## Using CDVViewController
+
+1. Add the following header:
+
+        #import <Cordova/CDVViewController.h>
+
+1. Instantiate a new `CDVViewController` and retain it somewhere,
+   e.g., to a class property:
+
+        CDVViewController* viewController = [CDVViewController new];
+
+1. Optionally, set the `wwwFolderName` property, which defaults to `www`:
+
+        viewController.wwwFolderName = @"myfolder";
+
+1. Optionally, set the start page in the `config.xml` file's
+   `<content>` tag, either a local file:
+
+        <content src="index.html" />
+
+    ...or a remote site:
+
+        <content src="http://apache.org" />
+
+1. Optionally, set the `useSplashScreen` property, which defaults to
+   `NO`:
+
+        viewController.useSplashScreen = YES;
+
+1. Set the __view frame__. Always set this as the last property:
+
+        viewController.view.frame = CGRectMake(0, 0, 320, 480);
+
+1. Add Cleaver to the view:
+
+        [myView addSubview:viewController.view];
+
+## Adding HTML, CSS and JavaScript Assets
+
+1. Create a new directory within the project, `www` for example.
+
+1. Place HTML, CSS and JavaScript assets into this directory.
+
+1. Use the Finder to copy the directory into Xcode's __Project
+   Navigator__ window.
+
+1. Select __Create folder references for any added folders__.
+
+1. Set the appropriate `wwwFolderName` and `startPage` properties for
+   the directory you initially created, or use the defaults (specified
+   in the previous section) when instantiating the
+   `CDVViewController`.
+
+        /*
+         if you created a folder called 'myfolder' and
+         you want the file 'mypage.html' in it to be
+         the startPage
+        */
+        viewController.wwwFolderName = @"myfolder";
+        viewController.startPage = @"mypage.html"
+
diff --git a/docs/en/5.1.1/guide/platforms/tizen/index.md b/docs/en/5.1.1/guide/platforms/tizen/index.md
new file mode 100644
index 0000000..a11f210
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/tizen/index.md
@@ -0,0 +1,116 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Tizen Platform Guide
+
+This guide describes how to set up your SDK development environment to
+deploy Cordova apps for devices running the Tizen operating system.
+
+## Requirements and Support
+
+The Tizen SDK requires Linux Ubuntu 10.04/10.10/11.04/11.10 (32-bit),
+or Windows XP SP3/7 (32-bit).
+
+Developers should use the `cordova` utility in conjunction with
+the Tizen SDK.  See The Command-Line Interface for information
+how to install it, add projects, then build and deploy a project.
+
+## Install the SDK
+
+Download the Tizen SDK from
+[tizen.org](https://developer.tizen.org/sdk).
+
+<!--
+
+- (optional) Install Tizen Cordova template projects: copy the
+  `/templates` directory content into the Tizen Eclipse IDE web
+  templates directory (e.g.:
+  `/home/my_username/tizen-sdk/IDE/Templates/web`).
+
+- __Method #2: Use Tizen Eclipse IDE Cordova Tizen project templates__
+    - Launch Tizen Eclipse IDE
+    - Select  __File &rarr; New &rarr; Tizen Web Project__
+    - Select __User Template__ and __User defined__ items
+    - Select one of the Tizen Cordova template (e.g.: __CordovaBasicTemplate__)
+    - Fill the __Project name__ and its target __Location__
+
+    ![](img/guide/platforms/tizen/project_template.png)
+
+    - Click __Finish__
+
+    ![](img/guide/platforms/tizen/project_explorer.png)
+
+    - Your project should now appear in the __Project Explorer__ view
+
+-->
+
+## Open a Project in the SDK
+
+1. Launch the Tizen Eclipse IDE.
+
+2. Select __File &rarr; Import &rarr; Tizen Web Project__:
+
+   ![](img/guide/platforms/tizen/import_project.png)
+
+3. Press __Next__.
+
+4. Make sure __Select root directory__ is checked.
+
+5. Make sure __Copy projects into workspace__ is checked.
+
+6. Press __Browse__ and select the Cordova Tizen `samples` project directory (such as `/cordova-basic`):
+
+   ![](img/guide/platforms/tizen/import_widget.png)
+
+7. Press __Finish__. Your project should now be imported and appear in
+   the __Project Explorer__ view:
+
+   ![](img/guide/platforms/tizen/project_explorer.png)
+
+To rebuild the project, right-click in the __Project Explorer__ view
+and Select __Build Project__:
+
+![](img/guide/platforms/tizen/build_project.png)
+
+A widget package file such as _hello.wgt_ should generate in the
+project's root directory.
+
+## Deploy to Emulator
+
+Right-click the project in the __Project Explorer__ view and select
+__Run As &rarr; Tizen Web Simulator Application__:
+
+![](img/guide/platforms/tizen/runas_web_sim_app.png)
+
+## Deploy to Device
+
+* Make sure that the target device is properly launched, connected and
+  configured. Its __Date and Time__ settings must be set correctly.
+
+* Use the __Connection Explorer__ view to select the application
+  deployment target: __Window &rarr; Show View &rarr; Connection
+  Explorer__.
+
+  ![](img/guide/platforms/tizen/connection_explorer.png)
+
+* Right-click the project in the __Project Explorer__ view, then
+  select __Run As &rarr; Tizen Web Application__:
+
+  ![](img/guide/platforms/tizen/runas_web_app.png)
+
diff --git a/docs/en/5.1.1/guide/platforms/ubuntu/index.md b/docs/en/5.1.1/guide/platforms/ubuntu/index.md
new file mode 100644
index 0000000..c08e4f7
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/ubuntu/index.md
@@ -0,0 +1,101 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Ubuntu Platform Guide
+
+## Initial Release
+
+Welcome to the initial release of Ubuntu platform support in
+Cordova. With this release, the focus is developing on an Ubuntu
+system and using the cross-platform workflow discussed in the
+Overview.  This includes adding the Ubuntu platform to your project,
+adding standard Cordova plugins, and building and running apps for the
+Ubuntu platform.
+
+### Ubuntu SDK
+
+You may also want to install the Ubuntu QtCreator development environment. See
+[developer.ubuntu.com](http://developer.ubuntu.com) for more info. (The
+QtCreator SDK is not required to add Ubuntu platform support to your Cordova
+app.)
+
+### Ubuntu Runtime Platforms
+
+Ubuntu is well known for its Desktop environment (for laptops, PCs and such).
+Ubuntu Touch extends the Ubuntu OS onto phones and tablets. Ubuntu runtime
+platforms have varying CPU architectures (x86, armhf, etc.). App and plugin
+code must be compiled appropriately. Support for this broad area is rapidly
+evolving in Ubuntu.
+
+### Latest Information
+
+For the latest information on Cordova app support for Ubuntu runtime platforms,
+see [wiki.ubuntu.com/Cordova](http://wiki.ubuntu.com/Cordova).
+
+## Development Platform Requirements
+
+For this initial release, the development platform should be an Ubuntu Desktop.
+Ubuntu 13.10 (codename ‘saucy’) or later is required to enjoy the full set of
+supported capabilities.
+
+You can install Cordova on non-Ubuntu systems (using npm), but important
+capabilities are only provided through Ubuntu debian packages at this time.
+
+## Cordova Installation
+
+Add the Ubuntu Cordova
+[Personal Package Archive](https://launchpad.net/~cordova-ubuntu/+archive/ppa)
+to your Ubuntu system:
+
+    $ sudo add-apt-repository ppa:cordova-ubuntu/ppa
+    $ sudo apt-get update
+
+Install cordova-cli package (and its dependencies):
+
+    $ sudo apt-get install cordova-cli
+
+## Project Workflow
+
+### Create a project
+
+Creates an app in a `hello` directory whose display name is
+`HelloWorld`:
+
+    $ cordova create hello com.example.hello HelloWorld
+
+### Move into the Project Directory
+
+    $ cd hello
+
+### Add the Ubuntu Platform
+
+    $ cordova platform add ubuntu
+
+### Build for Ubuntu
+
+    $ cordova build ubuntu
+
+### Run the App
+
+    $ cordova run ubuntu
+
+### Add the Camera Plugin
+
+    $ cordova plugin add cordova-plugin-camera
+
diff --git a/docs/en/5.1.1/guide/platforms/win8/index.md b/docs/en/5.1.1/guide/platforms/win8/index.md
new file mode 100644
index 0000000..53a5e98
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/win8/index.md
@@ -0,0 +1,275 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Platform Guide
+
+This guide shows how to set up your SDK development environment to build 
+and deploy Cordova apps for Windows 8, Windows 8.1, Windows Phone 8.1, and 
+Windows 10 Universal App Platform.  It shows how to use either shell tools 
+to generate and build apps, or the cross-platform Cordova CLI discussed in 
+The Command-Line Interface. (See the Overview for a comparison of these 
+development options.) This section also shows how to modify Cordova apps 
+within Visual Studio. Regardless of which approach you take, you need to 
+install the Visual Studio SDK, as described below.
+
+See Upgrading Windows 8 for information on how to upgrade existing
+Windows 8 Cordova projects.
+
+Window Phone 8 (wp8) stays as a separate platform,
+see Windows Phone 8 Platform Guide for details.
+
+Cordova WebViews running on Windows rely on Internet Explorer 10 (Windows 8.0)
+and Internet Explorer 11 (Windows 8.1 and Windows Phone 8.1) as
+their rendering engine, so as a practical matter you can use IE's
+powerful debugger to test any web content that doesn't invoke Cordova
+APIs.  The Windows Phone Developer Blog provides
+[helpful guidance](http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10.aspx)
+on how to support IE along with comparable WebKit browsers.
+
+## Requirements and Support
+
+To develop apps for Windows platform you need:
+
+- A Windows 8.1, 32 or 64-bit machine (_Home_, _Pro_, or _Enterprise_ editions) with minimum 4 GB of RAM.
+
+- Windows 8.0, 8.1 or 10, 32 or 64-bit _Home_, _Pro_, or _Enterprise_
+  editions, along with
+  [Visual Studio 2012 Express](http://www.visualstudio.com/downloads) 
+  or Visual Studio 2013.  Visual Studio 2015 is not able to build Windows 8.0 apps.
+
+To develop apps for Windows 8.0 and 8.1 (including Windows Phone 8.1):
+
+- Windows 8.1 or Windows 10, 32 or 64-bit _Home_, _Pro_, or _Enterprise_ editions,
+  along with 
+  [Visual Studio 2013 Express](http://www.visualstudio.com/downloads)
+  or higher. An evaluation version of Windows 8.1 Enterprise is
+  available from the
+  [Microsoft Developer Network](http://msdn.microsoft.com/en-US/evalcenter/jj554510).
+
+- For the Windows Phone emulators, Windows 8.1 (x64) Professional edition or higher,
+and a processor that supports <a href='https://msdn.microsoft.com/en-us/library/windows/apps/ff626524(v=vs.105).aspx#hyperv'>Client Hyper-V and Second Level Address Translation (SLAT)</a>.
+An evaluation version of Windows 8.1 Enterprise is available from the
+[Microsoft Developer Network](http://msdn.microsoft.com/en-US/evalcenter/jj554510).
+
+- [Visual Studio 2013 for Windows](http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-8) (Express or higher).
+
+To develop apps for Windows 10:
+
+- Windows 8.1 or Windows 10 Technical Preview 2, 32- or 64-bit, along with
+  [Visual Studio 2015 RC](http://www.visualstudio.com/preview) or higher.
+
+App compatibility is determined by the OS that the app targeted.  Apps are forwardly-compatible
+but not backwardly-compatible, so an app targeting Windows 8.1 cannot run on 8.0, but 
+an app built for 8.0 can run on 8.1.
+
+Follow the instructions at
+[windowsstore.com](http://www.windowsstore.com/)
+to submit the app to Windows Store.
+
+To develop Cordova apps for Windows, you may use a PC running
+Windows, but you may also develop on a Mac, either by running a
+virtual machine environment or by using Boot Camp to dual-boot a
+Windows 8.1 partition. Consult these resources to set up the required
+Windows development environment on a Mac:
+
+- [VMWare Fusion](http://msdn.microsoft.com/en-US/library/windows/apps/jj945426)
+
+- [Parallels Desktop](http://msdn.microsoft.com/en-US/library/windows/apps/jj945424)
+  
+- [Boot Camp](http://msdn.microsoft.com/en-US/library/windows/apps/jj945423)
+  
+## Using Cordova Shell Tools
+
+If you want to use Cordova's Windows-centered shell tools in
+conjunction with the SDK, you have two basic options:
+
+- Access them locally from project code generated by the CLI. They are
+  available in the `platforms/windows/` directory after you add
+  the `windows` platform as described below.
+
+- Download them from a separate distribution at
+  [cordova.apache.org](https://www.apache.org/dist/cordova/platforms/).
+  The Cordova  distribution contains separate archives for each platform.
+  Be sure to expand the appropriate archive, `cordova-windows` in
+  this case, within an empty directory.  The relevant batch utilities
+  are available in `package/bin` directory. (Consult the
+  __README__ file if necessary for more detailed directions.)
+
+These shell tools allow you to create, build, and run Windows apps.
+For information on the additional command-line interface that enables
+plugin features across all platforms, see Using Plugman to Manage
+Plugins.
+
+## Install the SDK
+
+Install any edition of
+[Visual Studio](http://www.visualstudio.com/downloads) matching the version
+requirements listed above.  
+
+![](img/guide/platforms/win8/win8_installSDK.png)
+
+For Windows 10, the Visual Studio installer has an option to install tools to 
+build Universal Windows Apps.  You must ensure that this option is selected
+when installing to install the required SDK.
+
+## Create a New Project
+
+At this point, to create a new project you can choose between the
+cross-platform CLI tool described in The Command-Line Interface, or
+the set of Windows-specific shell tools. 
+The CLI approach below generates an app named _HelloWorld_
+within a new `hello` project directory:
+
+        > cordova create hello com.example.hello HelloWorld
+        > cd hello
+        > cordova platform add windows
+
+Here's the corresponding lower-level shell-tool approach:
+
+        C:\path\to\cordova-windows\package\bin\create.bat C:\path\to\new\hello com.example.hello HelloWorld
+
+This project targets Windows 8.1 as the default target OS.  You can choose to target 8.0 or 10.0 (see "Configure target Windows version" below) for all builds, or you target specific a particular version during each build.
+
+## Build the Project
+
+If you are using the CLI in development, the project directory's
+top-level `www` directory contains the source files. Run either of
+these within the project directory to rebuild the app:
+
+        > cordova build
+        > cordova build windows              # do not rebuild other platforms
+        > cordova build windows   --debug    # generates debugging information
+        > cordova build windows   --release  # signs the apps for release
+
+Here's the corresponding lower-level shell-tool approach:
+
+        C:\path\to\project\cordova\build.bat --debug        
+        C:\path\to\project\cordova\build.bat --release
+
+The `clean` command helps flush out directories in preparation for the
+next `build`:
+
+        C:\path\to\project\cordova\clean.bat 
+
+## Configure target Windows version
+
+By default `build` command produces two packages: Windows 8.0 and Windows Phone 8.1.
+To upgrade Windows package to version 8.1 the following configuration setting must be 
+added to configuration file (`config.xml`).
+
+        <preference name="windows-target-version" value="8.1" />
+
+Once you add this setting `build` command will start producing Windows 8.1 
+and Windows Phone 8.1 packages.
+
+### The --appx parameter
+
+You may decide that you want to build a particular version of your application targeting a particular OS (for example, you might have set that you want to target Windows 10, but you want to build for Windows Phone 8.1).  To do this, you can use the `--appx` parameter:
+
+        > cordova build windows -- --appx=8.1-phone
+
+The build system will ignore the preference set in config.xml for the target Windows version and strictly build a package for Windows Phone 8.1.
+
+Valid values for the `--appx` flag are `8.1-win`, `8.1-phone`, and `uap` (for Windows 10 Universal Apps).  These options also apply to the `cordova run` command.
+
+### Considerations for target Windows version
+
+Windows 10 supports a new "Remote" mode for Cordova apps (and HTML apps in general). This mode enables
+apps much more freedom with respect to use of DOM manipulation and common web patterns such as the use 
+of inline script, but does so by reducing the set of capabilities your app may use when 
+submitted to the public Windows Store.  For more information about Windows 10 and Remote Mode, look at
+the [Cordova for Windows 10](win10-support.md.html) documentation.
+
+When using Remote Mode, developers are encouraged to apply a Content Security Policy (CSP) to their application 
+to prevent script injection attacks.
+
+## Deploy the app
+
+To deploy Windows package:
+
+        > cordova run windows -- --win  # explicitly specify Windows as deployment target
+        > cordova run windows # `run` uses Windows package by default
+
+To deploy Windows Phone package:
+
+        > cordova run windows -- --phone  # deploy app to Windows Phone 8.1 emulator
+        > cordova run windows --device -- --phone  # deploy app to connected device
+
+You can use __cordova run windows --list__ to see all available targets and 
+__cordova run windows --target=target_name -- --phone__ to run application on a 
+specific device or emulator 
+(for example, `cordova run windows --target="Emulator 8.1 720P 4.7 inch" -- --phone`).
+
+You can also use __cordova run --help__ to see additional build and run
+options.
+
+## Open the Project in the SDK and Deploy the App
+
+Once you build a Cordova app as described above, you can open it with
+Visual Studio. The various `build` commands generate a Visual Studio
+Solution (_.sln_) file. Open the file in the File Explorer to modify
+the project within Visual Studio:
+
+![](img/guide/platforms/win8/win8_sdk_openSLN.png)
+
+The `CordovaApp` component displays within the solution, and its `www`
+directory contains the web-based source code, including the
+`index.html` home page:
+
+![](img/guide/platforms/win8/win8_sdk.png)
+
+The controls below Visual Studio's main menu allow you to test or
+deploy the app:
+
+![](img/guide/platforms/win8/win8_sdk_deploy.png)
+
+With __Local Machine__ selected, press the green arrow to install the
+app on the same machine running Visual Studio. Once you do so, the app
+appears in Windows 8's app listings:
+
+![](img/guide/platforms/win8/win8_sdk_runApp.png)
+
+Each time you rebuild the app, the version available in the interface
+is refreshed.
+
+Once available in the app listings, holding down the __CTRL__ key
+while selecting the app allows you to pin it to the main screen:
+
+![](img/guide/platforms/win8/win8_sdk_runHome.png)
+
+Note that if you open the app within a virtual machine environment,
+you may need to click in the corners or along the sides of the windows
+to switch apps or access additional functionality:
+
+![](img/guide/platforms/win8/win8_sdk_run.png)
+
+Alternately, choose the __Simulator__ deployment option to view the
+app as if it were running on a tablet device:
+
+![](img/guide/platforms/win8/win8_sdk_sim.png)
+
+Unlike desktop deployment, this option allows you to simulate the
+tablet's orientation, location, and vary its network settings.
+
+__NOTE__: Consult the Overview for advice on how to use Cordova's
+command-line tools or the SDK in your workflow. The Cordova CLI relies
+on cross-platform source code that routinely overwrites the
+platform-specific files used by the SDK. If you want to use the SDK to
+modify the project, use the lower-level shell tools as an alternative
+to the CLI.
\ No newline at end of file
diff --git a/docs/en/5.1.1/guide/platforms/win8/packaging.md b/docs/en/5.1.1/guide/platforms/win8/packaging.md
new file mode 100644
index 0000000..7107338
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/win8/packaging.md
@@ -0,0 +1,117 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Packaging
+
+You can learn more about signing and packaging of Windows Store Apps on [MSDN][1].
+
+To be able to correctly package and sign Windows apps there are few things required:
+
+- A signing certificate
+- Identity details matching the provided signing certificate
+
+In Windows project, identity details are kept in a file named package.appxmanifest. This file is automatically populated every time a Cordova app is built. Identity holds 3 important fields.
+
+- Name
+- Publisher
+- Version
+
+*Name* and *Version* can be set from **config.xml**. *Publisher* can be provided as a build parameter or can be set on **build.json** file.
+
+![](img/guide/platforms/win8/packaging.png)
+
+A signing certificate can be provided from either CLI or through build.json file. The certificate related CLI flags are:
+
+- `--packageCertificateKeyFile` : Once a package signing certificate is created, this parameter can be used to associate the certificate with the app. This flag takes a file path as an argument. Eg. `> cordova build -- --packageCertificateKeyFile="platforms\windows\CordovaApp_TemporaryKey.pfx"`
+- `--packageThumbprint` : Package thumbprint is used to validate the authenticity of package certificate key file. When creating a certificate key file, this value will be provided to the end user. Eg. `> cordova build -- --packageCertificateKeyFile="platforms\windows\CordovaApp_TemporaryKey.pfx" --packageThumbprint="ABCABCABCABC123123123123"`
+
+Alternatively, these values could be specified using a build configuration file (build.json) using CLI (--buildConfig). A sample build configuration file:
+
+    {
+        "windows": {
+            "debug": {
+                "packageCertificateKeyFile": "platforms\\windows\\CordovaApp_TemporaryKey.pfx"
+            },
+            "release": {
+                "packageCertificateKeyFile": "c:\\path-to-key\\keycert.pfx",
+                "packageThumbprint": "ABCABCABCABC123123123123",
+                "publisherId": "CN=FakeCorp.com, L=Redmond, S=Washington, C=US"
+            }
+        }
+    }
+
+There is also support to mix and match command line arguments and parameters in build.json file. Values from the command line arguments will get precedence.
+
+# How to create a certificate key and sign Cordova windows Apps
+Signing is required for distributing and installing Windows Store apps. This process is normally handled by Visual Studio when you deploy a package for release. To do tmhis without Visual Studio we need to create our own certificates.
+
+For creating certificates we need to use [makecert.exe][2] util. This tool ships with Windows SDK and can be found under `%ProgramFiles(x86)%\Windows Kits\8.1\bin\x64` or `%ProgramFiles(x86)%\Windows Kits\8.1\bin\x86`.
+
+The first thing we need to do is to create a root key for signing our app.
+
+`makecert.exe -n "CN=FakeCorp.com" -r -eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" -e "01/01/2020" –h 0 -sv FakeCorp.com.pvk FakeCorp.com.cer`
+
+To understand what makecert does, here's a brief explanation of what parameters do:
+
+- -n "CN=FakeCorp.com" : This is the certificate subject [X.509](http://en.wikipedia.org/wiki/X.509) name. In this example it's **C**ommon**N**ame=FakeCorp.com.
+- -r : Creates a [self signed certificate](http://en.wikipedia.org/wiki/Self-signed_certificate).
+- -eku #EKU_VAL# : Comma separated enhanced key usage OIDs.
+    - 1.3.6.1.5.5.7.3.3 indicates that the certificate is valid for code signing. Always specify this value to limit the intended use for the certificate.
+    - 1.3.6.1.4.1.311.10.3.13 indicates that the certificate respects lifetime signing. Typically, if a signature is time stamped, as long as the certificate was valid at the point when it was time stamped, the signature remains valid even if the certificate expires. This EKU forces the signature to expire regardless of whether the signature is time stamped.
+- -e "01/01/2020" : Sets the expiration date of the certificate. 
+- -h 0 : Sets max height of the tree below this cert to 0 to prevent the certificate from being used as a Certification Authority (CA) that can issue other certificates.
+- -sv FakeCorp.com.pvk : Output PVK file. Windows uses PVK files to store private keys for code signing.
+- FakeCorp.com.cer : Output certificate file. CER file is used to store X.509 certificate.
+
+After running makecert for the first time, enter the private password on the screen that pops up:
+
+![](img/guide/platforms/win8/createprivatekeywindow.png)
+
+Once pvk and cer file is created, we need to create a pfx file from these certificates. A pfx (Personal Exchange Format) file contains a variety of cryptographic information, such as certificates, root authority certificates, certificate chains and private keys. To package the certs, we will use the a tool called [pvk2pfx][3]. This tool ships with Windows SDK and can be found under `%ProgramFiles(x86)%\Windows Kits\8.1\bin\x64` or `%ProgramFiles(x86)%\Windows Kits\8.1\bin\x86`.
+
+`pvk2pfx -pvk FakeCorp.com.pvk -pi pvkPassword -spc FakeCorp.com.cer -pfx FakeCorp.com.pfx -po pfxPassword`
+
+Where:
+
+- pvk : Input pvk file name
+- pi : pvk password
+- spc :  Input cert file name
+- pfx : Output pfx file name
+- po : pfx password; same as pvk password if not provided
+ 
+If we provide this pfx file to build.json file, we will have the following error: "The key file may be password protected. To correct this, try to import the certificate manually into the current user's personal certificate  store.". In order to import it we have to use [certutil][4] from an admin prompt:
+
+`certutil -user -p PASSWORD -importPFX FakeCorp.com.pfx`
+
+Where:
+
+- user : Specifies "current user" personal store
+- p : Password for pfx file
+- importPfx : Name of pfx file
+
+Once installed, next step is to add packageThumbprint and packageCertificateKeyFile to build.json. In order to find the packageThumbprint, search for the CommonName we've associated with the certificate:
+
+`powershell -Command " & {dir -path cert:\LocalMachine\My | where { $_.Subject -like \"*FakeCorp.com*\" }}"`
+
+Once these final values are provided. Cordova should successfully package and sign the app.
+
+[1]: https://msdn.microsoft.com/en-us/library/hh446593(v=vs.85).aspx
+[2]: https://msdn.microsoft.com/en-us/library/ff548309(v=vs.85).aspx
+[3]: https://msdn.microsoft.com/en-us/library/ff550672(v=vs.85).aspx
+[4]: https://technet.microsoft.com/en-us/library/ee624045(v=ws.10).aspx
\ No newline at end of file
diff --git a/docs/en/5.1.1/guide/platforms/win8/plugin.md b/docs/en/5.1.1/guide/platforms/win8/plugin.md
new file mode 100644
index 0000000..c8f5956
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/win8/plugin.md
@@ -0,0 +1,216 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Plugins
+
+This section provides details for how to implement a plugin for use in 
+a Windows Store app. Before reading this, see Application Plugins for 
+an overview of the plugin's structure and its common JavaScript interface. 
+This section continues to demonstrate the sample _echo_ plugin that 
+communicates from the Cordova webview to the native platform and back.
+
+It is important to note that Windows supports developing directly in Javascript, which means developing the 'native' portions in only required in special cases.
+
+Creating a Windows Plugin in JavaScript
+---
+
+These instructions are to create a pure JavaScript plugin. Understanding this is crucial to understanding how to add the native/managed bits.
+
+Windows Cordova plugins are essentially a thin wrapper around existing WinJS provided functions, but assuming you will want to define your JS common interface for multiple devices, you will typically have 1 JS file that provides the API.
+
+    // inside file echoplugin.js
+    var EchoPlugin = {
+        // the echo function calls successCallback with the provided text in strInput
+        // if strInput is empty, it will call the errorCallback
+        echo:function(successCallback, errorCallback, strInput) {
+            cordova.exec(successCallback,errorCallback,"EchoPlugin","echo",[strInput]);
+        }
+    }
+
+Inside Cordova exec on Windows
+---
+
+The cordova.exec function is defined differently on every platform, this is because each platform has it's own way of communicating between the application js code, and the native wrapper code. But in the case of Windows, there is no native wrapper, so the exec call is there for consistency. You could do your js only plugin work directly in EchoPlugin.echo, something like :
+
+    // inside file echoplugin.js ( this is what NOT to do if you want to reuse the JS API cross platform )
+    var EchoPlugin = {
+        echo:function(successCallback,errorCallback,strInput) {
+            if(!strInput || !strInput.length) {
+                errorCallback("Error, something was wrong with the input string. =>" + strInput);
+            }
+            else {
+                successCallback(strInput + "echo");
+            }
+        }
+    }
+
+This would/could work fine, however it means that you will need different versions of echoPlugin.js for different platforms, and possibly you could have issues with inconsistencies in your implementations. As a best practice, we decided to mimic a native API inside cordova.exec on Windows, so we could run the same JS code, and not have to rewrite it for the platform, and also take advantage of any parameter checking, or other common code provided by developers who were working on other platforms.
+
+The Cordova exec proxy
+---
+
+On Windows, cordova provides a proxy that you can use to register an object that will handle all cordova.exec calls to an API.
+
+For example if you wanted to provide the implementation for the Accelerometer API, you would do this :
+
+cordova.commandProxy.add("Accelerometer",{
+    start:function(){
+        // your code here ...
+    }
+    // ,
+    //  ... and the rest of the API here
+});
+
+So in our case, we will assume that the code in echoplugin.js is handling cross platform relevant JavaScript, and we can simply write a proxy for Windows
+
+    // in file echopluginProxy.js
+    cordova.commandProxy.add("EchoPlugin",{
+        echo:function(successCallback,errorCallback,strInput) {
+            if(!strInput || !strInput.length) {
+                errorCallback("Error, something was wrong with the input string. =>" + strInput);
+            }
+            else {
+                successCallback(strInput + "echo");
+            }
+        }
+    });
+
+The plugin definition
+
+If we want users of our plugin to be able to easily install our plugin, we will need to define it according to how PlugMan defines plugins. More on this in the [Plugin Spec](plugin_ref_spec.md.html#Plugin%20Specification)
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+        id="com.risingj.echoplugin"
+        version="0.1.0">
+
+        <js-module src="www/echoplugin.js" name="echoplugin">
+            <clobbers target="window.echoplugin" />
+        </js-module>
+
+        <!-- windows -->
+        <platform name="windows">
+            <js-module src="src/windows/echopluginProxy.js" name="EchoProxy">
+                <merges target="" />
+            </js-module>
+        </platform>
+
+        <!-- other platforms -->
+
+    </plugin>
+
+This gives us a working Windows JavaScript plugin that uses a common file ( echoplugin.js ) and uses a proxy to provide the Windows only portion of implementation ( echopluginProxy.js ). So how do we add native/managed code to this? Well we are going to start the same, the only difference will be what we do inside in echopluginProxy methods.
+
+How WinJS accesses native/managed code
+===
+
+
+In Windows, WinJS authored apps are able to interact with native code, this inter-op is available for Windows Runtime Components. The details are numerous, and this guide will only cover the basics. Microsoft provides much more info [here](http://msdn.microsoft.com/en-us/library/windows/apps/hh441569.aspx).
+
+When you create your Windows Runtime Component, any class that is defined as 'public ref class sealed' is considered an 'activatable class' and will be callable from JavaScript.
+
+    // in your header file .h
+    namespace EchoRuntimeComponent
+    {
+        public ref class EchoPluginRT sealed 
+        {
+            public:
+            static Platform::String^ Echo(Platform::String^ input);
+        }
+    }
+
+    // in the implementation file .cpp
+    using namespace EchoRuntimeComponent;
+    using namespace Platform;
+
+    Platform::String^ EchoPluginRT::Echo(Platform::String^ input)
+    {
+        if(input->IsEmpty()) 
+        {
+            return "Error: input string is empty.";
+        }
+        else
+        {
+            return input->ToString() + "echo";
+        }
+    }
+
+Now in order for us to call the native code, we use the namespace, classname, and lowerCamelCase the method we are calling.
+
+var res = EchoRuntimeComponent.EchoPluginRT.echo("boom");
+Moving this to our echopluginProxy.js file, we get this :
+
+    // in file echopluginProxy.js
+    cordova.commandProxy.add("EchoPlugin",{
+        echo:function(successCallback,errorCallback,strInput) {
+            var res = EchoRuntimeComponent.EchoPluginRT.echo(strInput);
+            if(res.indexOf("Error") == 0) {
+                errorCallback(res);
+            }
+            else {
+                successCallback(res);
+            }
+        }
+    });
+
+And that's it, we have an end to end C++ backed js callable plugin for use in Apache Cordova Windows!
+
+Some technical notes:
+===
+
+- the callback is typically async, so calling the callback right away is probably not expected by the caller. In practice, if the call is not async, you should at least use a javascript timeout to force the callback to be called async.
+- Activatable classes can do all kinds of awesome, like event dispatching, async callbacks, passing your own object types, arrays, collections, overloaded methods and much more. I recommend you do your homework.
+- If you stick to common Windows Phone 8.0 and Windows SDK API calls, you will be able to use the same runtime component ( native or managed bits ) in a Windows Phone 8.0 Apache Cordova plugin. ~stay tuned for that post.
+
+Defining your plugin
+===
+
+Now that we have a working plugin, we need to revisit the plugin definition from earlier so we can publish it. We can now add the runtime component as a framework.
+Note that the output type of a WindowsRuntimeComponent can be either .winmd or .dll
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+        id="com.risingj.echoplugin"
+        version="0.2.0">
+
+        <js-module src="www/echoplugin.js" name="echoplugin">
+            <clobbers target="window.echoplugin" />
+        </js-module>
+
+        <!-- windows -->
+        <platform name="windows">
+            <js-module src="src/windows/echopluginProxy.js" name="EchoProxy">
+                <merges target="" />
+            </js-module>
+            <framework src="src/windows/EchoRuntimeComponent.winmd" custom="true"/>
+        </platform>
+
+        <!-- other platforms -->
+
+    </plugin>
+
+That's it, you now have a distributable plugin that you can share with the world!
+One thing to note, support for adding frameworks to Windows Cordova project was only recently added so you will need to make sure your cordova tooling current.  The cordova-cli and cordova-plugman both support adding removing native backed plugins.
+
+\> cordova plugin add com.risingj.echoplugin
+or
+\> plugman install --platform windows --plugin com.risingj.echoplugin --project .
+
+https://github.com/purplecabbage/cordova-runtimecomp-echoplug
+
diff --git a/docs/en/5.1.1/guide/platforms/win8/upgrade.md b/docs/en/5.1.1/guide/platforms/win8/upgrade.md
new file mode 100644
index 0000000..b457f2c
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/win8/upgrade.md
@@ -0,0 +1,61 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading Windows 8
+
+This guide shows how to modify Windows 8 projects to upgrade from older versions of Cordova.
+Most of these instructions apply to projects created with an older set
+of command-line tools that precede the `cordova` CLI utility. See The Command-Line Interface for information how to update the
+version of the CLI.
+
+## Upgrade to 4.0.0 from 3.1.0 or later
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface. 
+
+2. Run `cordova platform update windows8`.
+        
+For projects not created with the cordova CLI, run:
+
+        bin\update <project_path>
+
+## Upgrade to 3.1.0
+
+Cordova CLI support for Windows 8 was introduced in Cordova 3.1.0. To upgrade, we suggest creating a new Cordova CLI project and moving over all necessary assets.  
+
+## Upgrade to 2.9.0 from 2.8.0
+
+The following commands should be done from within Visual Studio to be sure that the any project references are updated/deleted.
+
+1. Remove `cordova-2.8.0.js` from the project's `www` directory.
+
+2. Add `cordova.js` file from the source to the project's `www` directory. (Note that the file no longer contains a version number in the filename.)
+
+3. Build and test!
+
+## Upgrade to 2.8.0 from 2.7.0
+
+The following commands should be done from within Visual Studio to be sure that the any project references are updated/deleted.
+
+1. Remove `cordova-2.7.0.js` from the project's `www` directory. 
+
+2. Add `cordova.js` file from the source to the project's `www` directory. (Note that the file no longer contains a version number in the filename.)
+
+3. Build and test!
diff --git a/docs/en/5.1.1/guide/platforms/win8/win10-support.md b/docs/en/5.1.1/guide/platforms/win8/win10-support.md
new file mode 100644
index 0000000..82265e5
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/win8/win10-support.md
@@ -0,0 +1,107 @@
+# Cordova for Windows 10 #
+Maybe you could instead call it "Windows 10 for Cordova."  Windows 10 has had its HTML and 
+JavaScript Apps platform re-engineered to bring Cordova support to the web, and to get 
+platform security restrictions out of your way.
+
+## Getting Started with Windows 10 ##
+Adding Windows 10 support to your app is as easy as setting your Windows target platform 
+version to 10.0:
+
+    <preference name="windows-target-version" value="10.0" />
+    <preference name="windows-phone-target-version" value="10.0" />
+
+When you build with these preferences both set, only a single .appx (and .appxupload) will 
+be built.  They will require Windows 10 at a minimum.
+
+### Understanding Remote Mode vs. Local Mode ###
+Remote Mode is a new feature of the HTML Applications for Windows platform in Windows 10.  In 
+Windows 8 and 8.1, HTML Applications worked in what is called "Local Mode" in Windows 10.  In 
+Local Mode, HTML Applications have full access to the native Windows API surface and 
+capabilities.  In order to prevent script injection attacks which could result in leaking 
+personally-identifiable information due to malicious code, Local Mode disallows inline script, 
+and requires developers who perform DOM manipulation to do so within an explicit context 
+(`MSApp.execUnsafeLocalFunction`).  
+
+Remote Mode eliminates those requirements, which makes it possible to use unmodified libraries like jQuery or AngularJS directly in your code, without any changes.  To do so, it removes your ability to declare certain capabilities when certifying your app in the Windows Store.  The removal of these capabilities usually doesn't prevent getting to certain functionality, but it might require to use a different combination of APIs or tactics.  
+
+### Effect of Remote Mode on capabilities ###
+The following capabilities are unavailable when deploying your Remote Mode application to the Windows Store:
+
+- Enterprise Authentication (`enterpriseAuthentication`)
+- Shared User Certificates (`sharedUserCertificates`)
+- Documents Library (`documentsLibrary`)
+- Music Library (`musicLibrary`)
+- Pictures Library (`picturesLibrary`)
+- Videos Library (`videosLibrary`)
+- Removable Storage (`removableStorage`)
+- Internet client/server (`internetClientClientServer`) - note that `internetClient` is still permitted
+- Private network client/server (`privateNetworkClientServer`)
+
+Each of the library restrictions may be worked around by requesting that the user interact with the file system via a [File Picker](https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.fileopenpicker.aspx).  This prevents malicious injected code from arbitrarily accessing the file system.
+
+The network-related restrictions must be worked around by either using an API that doesn't use capability checks or by brokering communication via standard internet communication channels, such as `XMLHttpRequest` or Web Sockets.  
+
+The Enterprise Authentication and Shared User Certificates capabilities are specifically targeted at Enterprise scenarios.  These capabilities are supported for private/enterprise-enabled App Stores, so if you are building apps which are going to be deployed to an internal deployment mechanism, you can still support these.  However, they are not supported for Remote Mode apps in the public Windows Store.  When you build targeting Windows 10, if one of these capabilities is detected in your app manifest, a warning will be displayed.
+
+## Reference ##
+
+### config.xml Preferences ###
+
+#### windows-target-version, windows-phone-target-version ####
+    <preference name="windows-target-version" value="10.0" />
+    <preference name="windows-phone-target-version" value="10.0" />
+
+*At least one is required.*
+
+These preferences identify the version of Windows or Windows Phone you would like your 
+app package to target. 
+
+**Valid Values**
+
+- `10.0`, `UAP`: Builds for Windows 10 Universal App Platform
+- `8.1`: Builds for Windows 8.1 or Windows Phone 8.1
+- `8.0`: Build for Windows 8.0.  Not valid for Windows Phone (use the **wp8** Cordova 
+platform instead)
+
+**Scenarios**
+
+If you are targeting Windows 10 only, you only need to have a single `windows-target-version` 
+setting in your config.xml file.  
+
+#### WindowsDefaultUriPrefix ####
+    <preference name="WindowsDefaultUriPrefix" value="ms-appx://|ms-appx-web://" />
+
+This preference identifies whether you want your app to target the **local context** or **remote 
+context** as its startup URI.  When building for Windows 10, the default is the remote 
+context (`ms-appx-web://`).
+
+In order to have a local-mode application that is not impacted by Remote Mode capability 
+restrictions, you must set this preference to `ms-appx://` and not declare any `<access>` 
+elements with remote URIs. 
+
+**Valid Values**
+
+- `ms-appx://` (Default for Windows 8.0, 8.1): The start page runs in the local context
+- `ms-appx-web://` (Default for Windows 10): The start page runs in the remote context
+
+#### {SDK}-MinVersion, {SDK}-MaxVersionTested ####
+*Optional*
+
+    <preference name="Windows.Universal-MinVersion" value="10.0.0.0" />
+    <preference name="Windows.Mobile-MinVersion" value="10.0.9927.0" />
+    <preference name="Windows.Mobile-MaxVersionTested" value="10.0.10031.0" />
+    <preference name="Microsoft.Band-MinVersion" value="10.0.11.0" />
+
+These preferences identify which ecosystems (including but not limited to Windows Universal, Windows Mobile, or Xbox) and their min/max versions they are compatible with.  They still require that the platforms have support for the Universal App Platform (so Windows 10 as the base OS).  However, these may indicate that the application is aware of particular functionality that may only be available on certain devices (such as game streaming on Xbox).
+
+**Valid Values**
+
+There are three parts to each value: the **SDK**, the **version restriction**, and the **version value**.  These preferences are detected by beginning with `Windows` or `Microsoft` and ending in `-MinVersion` or `-MaxVersionTested`:
+
+- The **SDK** defines what specialized platform you want to target.  The default is `Windows.Universal`.  Valid values for these are defined in the AppxManifest schema, in the `Package/Depednencies/TargetPlatform` elements.
+- The **version restriction** defines application compatibility rules.  For example, if the `-MinVersion` is set to 10.1.0.0, then OS versions which don't support at least 10.1.0.0 of the corresponding SDK won't be able to load it.
+	- `-MinVersion` specifies the minimum version of the SDK required
+	- `-MaxVersionTested` specifies the highest-tested version of the SDK.  If a new version of the corresponding SDK is released, it will run in compatibility mode for the specified version.
+- The **version value** is a 4-integer tuple in the form of *major.minor.build.qfe*. 
+
+If no preferences of these types are specified in your config.xml file, then Windows.Universal version 10.0.0.0 will be chosen by default.
\ No newline at end of file
diff --git a/docs/en/5.1.1/guide/platforms/wp8/index.md b/docs/en/5.1.1/guide/platforms/wp8/index.md
new file mode 100644
index 0000000..898aac3
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/wp8/index.md
@@ -0,0 +1,253 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone 8 Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Windows Phone devices.  It focuses on Windows
+Phone 8, but provides additional details on how to support Windows
+Phone 7.
+
+It shows how to use either Windows Phone-specific shell tools to
+generate and build apps, or the cross-platform Cordova CLI discussed
+in The Command-Line Interface.  (See the Overview for a comparison of
+these development workflows.) This section also shows how to open
+Cordova apps so that you can modify them within Visual Studio.
+Regardless of which approach you take, you need to install the Windows
+Phone SDK, as described below.
+
+See the following for details specific to the Windows Phone platform:
+
+- Windows Phone 8 Plugins
+- Upgrading Windows Phone 8
+
+For the Windows Phone 8 platform, the Cordova WebView relies on
+Internet Explorer 10 as its rendering engine, so as a practical matter
+you can use IE10's powerful debugger to test any web content that
+doesn't invoke Cordova APIs.  The Windows Phone Developer Blog
+provides
+[helpful guidance](http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10.aspx)
+on how to support IE10 along with comparable WebKit browsers.
+
+## Requirements and Support
+
+You need the following:
+
+- A 64-bit version of Windows 8 Pro, either an installation disk or an
+  _ISO_ disk image file. An evaluation version is available on the
+  [Microsoft Developer Network](http://msdn.microsoft.com/en-US/evalcenter/jj554510).
+  The Pro version is necessary to run the device emulator.
+
+- The [Windows Phone SDK](http://www.microsoft.com/en-us/download/details.aspx?id=35471).
+
+- In order to deploy via the command-line with the Windows Phone 8.0 SDK,
+[Visual Studio 2012 Update 2](https://support.microsoft.com/en-us/kb/2797912)
+must be installed.
+
+To develop Cordova apps for Windows Phone devices, you may use a PC
+running Windows, but you may also develop on a Mac, either by running
+a virtual machine environment or by using Boot Camp to dual-boot a
+Windows partition. Consult these resources to set up the required
+Windows development environment on a Mac:
+
+- __VMWare Fusion__: To set up the Windows 8 virtual machine, follow
+  the instructions provided by the
+  [Microsoft Developer Network](http://msdn.microsoft.com/en-US/library/windows/apps/jj945426),
+  then see Configuring VMWare Fusion for information on preparing the
+  virtual environment to run the emulator bundled with the SDK.
+
+- __Parallels Desktop__: To set up the Windows 8 virtual machine,
+  follow the instructions provided by the
+  [Microsoft Developer Network](http://msdn.microsoft.com/en-US/library/windows/apps/jj945424),
+  then see Configuring Parallels Desktop for information on preparing
+  the virtual environment to run the emulator bundled with the SDK.
+  
+<!--
+- __VirtualBox__: To set up the Windows 8 virtual machine, follow the
+  installation instructions provided by the [Microsoft Developer
+  Network](http://msdn.microsoft.com/en-US/library/windows/apps/jj945425).
+
+  2DO: virtualBox doesn't work yet; any extra config info?
+-->
+
+- __Boot Camp__: To set up the Windows 8 partition, follow the
+  installation instructions provided by the [Microsoft Developer
+  Network](http://msdn.microsoft.com/en-US/library/windows/apps/jj945423).
+  
+If you are developing on a PC, its processor must support
+virtualization (_VT-x_ on Intel) and [Second Level Address Translation
+(SLAT)](http://en.wikipedia.org/wiki/Second_Level_Address_Translation).
+Consult [Intel's list of supporting
+processors](http://ark.intel.com/Products/VirtualizationTechnology).
+Virtualization is typically disabled by default, so you need to enable
+it in your BIOS settings. The PC should have at least 6.5GB of free
+hard disk space, and 4GB of RAM.
+
+## Using Cordova Shell Tools
+
+If you want to use Cordova's Windows Phone-centered shell tools in
+conjunction with the SDK, you have two basic options:
+
+- Access them locally from project code generated by the CLI. They are
+  available in the `platforms/wp8/cordova` directory after you add the
+  `wp8` platform as described below.
+
+- Download them from a separate distribution at
+  [cordova.apache.org](http://cordova.apache.org).  The Cordova
+  distribution contains separate archives for each platform.  Be sure
+  to expand the appropriate archive, `cordova-wp8\wp8` in this case,
+  within an empty directory.  The relevant batch utilities are
+  available in the top-level `bin` directory. (Consult the __README__
+  file if necessary for more detailed directions.)
+
+These shell tools allow you to create, build, and run Windows Phone
+apps.  For information on the additional command-line interface that
+enables plugin features across all platforms, see Using Plugman to
+Manage Plugins. See Application Plugins for guidance on how to develop
+plugins, and Windows Phone 8 Plugins for details specific to the Windows
+Phone platform.
+
+## Install the SDK
+
+Install the latest version of the Windows Phone SDK from the
+__Downloads__ area of
+[dev.windowsphone.com](https://dev.windowsphone.com/en-us/downloadsdk).
+You may also install more recent emulator update packages.
+
+![](img/guide/platforms/wp8/wp8_downloadSDK.png)
+
+## Create a New Project
+
+At this point, to create a new project you can choose between the
+cross-platform CLI tool described in The Command-Line Interface, or
+the set of Windows Phone-specific shell tools. From within a
+source-code directory, here's the CLI approach:
+
+        > cordova create hello com.example.hello HelloWorld
+        > cd hello
+        > cordova platform add wp8
+
+Here's the corresponding lower-level shell-tool approach:
+
+        C:\path\to\cordova-wp8\bin\create.bat C:\path\to\new\hello com.example.hello HelloWorld
+
+## Build the Project
+
+If you are using the CLI in development, the project directory's
+top-level `www` directory contains the source files. Run either of
+these within the project directory to rebuild the app:
+
+        > cordova build
+        > cordova build wp8   # do not rebuild other platforms
+
+If you are using the Windows Phone-specific shell tools in
+development, there is a different approach.  Once you generate the
+project, the default app's source is available in the
+`projects\wp8\www` subdirectory. Subsequent commands are available in
+the `cordova` subdirectory at the same level.
+
+The `build` command cleans project files and rebuilds the app.  The first
+example generates debugging information, and the second signs the apps
+for release:
+
+        C:\path\to\project\cordova\build.bat --debug        
+        C:\path\to\project\cordova\build.bat --release
+
+The `clean` command helps flush out directories in preparation for the
+next `build`:
+
+        C:\path\to\project\cordova\clean.bat
+
+## Deploy to Emulator
+
+At this point you can use the `cordova` CLI utility to deploy the
+application to the emulator from the command line:
+
+        > cordova emulate wp8
+
+Otherwise use the alternate shell interface:
+
+        C:\path\to\project\cordova\run
+
+By default, the `run` script invokes the emulator flag, and accepts
+additional build flags, for which `--debug` provides the default:
+
+        C:\path\to\project\cordova\run --emulator --debug
+        C:\path\to\project\cordova\run --emulator --release
+        C:\path\to\project\cordova\run --emulator --nobuild
+
+The emulator launches a device image with the app installed. From the
+home screen, navigate to the apps panel to launch the __HelloWorld__
+app. This shows the app launching with its splash screen followed by
+its main interface:
+
+![](img/guide/platforms/wp8/wp8_emulator.png)
+
+The emulator's basic controls on the top-right of the device screen
+allow you to toggle between portrait and landscape orientation. The
+__>>__ button opens more controls that allow you to test more complex
+orientations and gestures:
+
+![](img/guide/platforms/wp8/wp8_emulator_orient.png)
+
+These advanced controls also allow you to modify the device's
+location or to simulate sequences of movements:
+
+![](img/guide/platforms/wp8/wp8_emulator_loc.png)
+
+## Deploy to Device
+
+Before testing your application on a device, the device must be
+registered. Consult [Microsoft's
+documentation][1]
+for details on how to deploy and test on Windows Phone 8. Also, make
+sure the phone is connected to the computer, and the screen is
+unlocked.
+
+Then run the following CLI command to run the app on the device:
+
+    > cordova run wp8
+
+It corresponds to this lower-level shell command:
+
+    C:\path\to\project\cordova\run --device
+
+Alternately, if you are working in Visual Studio, select __Windows
+Phone Device__ from the drop-down menu at the top, then press the
+green __Play__ button nearby or else type __F5__.
+
+## Modify the Project in the SDK
+
+Once you build a Cordova app as described above, you can open it with
+the SDK. The various `build` commands generates a Visual Studio
+Solution (_.sln_) file. Open the file to modify the project within
+Visual Studio. The web-based source code is available within the
+project's `www` directory. Along with other tools the SDK provides,
+the control below the menu allows you to launch the app in a Windows
+Phone emulator:
+
+![](img/guide/platforms/wp8/wp8_vs.png)
+
+Consult the Overview for advice on how to use Cordova's command-line
+tools or the SDK in your workflow. The Cordova CLI relies on
+cross-platform source code that routinely overwrites the
+platform-specific files used by the SDK. If you want to work within
+the SDK, use the lower-level shell tools as an alternative to the CLI.
+
+[1]: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402565.aspx
\ No newline at end of file
diff --git a/docs/en/5.1.1/guide/platforms/wp8/parallels.md b/docs/en/5.1.1/guide/platforms/wp8/parallels.md
new file mode 100644
index 0000000..c023209
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/wp8/parallels.md
@@ -0,0 +1,46 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Configuring Parallels Desktop
+
+This section shows how to configure Parallels Desktop on a Mac so that
+you can use Cordova to generate Windows Phone applications.
+
+The
+[Microsoft Developer Network](http://msdn.microsoft.com/en-US/library/windows/apps/jj945424)
+provides general instructions for how to run Windows under Parallels
+Desktop. After installing Windows, follow these steps:
+
+1. Within Parallels Desktop, select the Windows 8 disk image you have
+   prepared, and choose __Settings__.
+
+1. Choose the __General &rarr; CPUs__ options. Specify _two_ CPUs.
+   Specify at least 2GB of memory, even if it falls outside the
+   recommended range:
+
+   ![](img/guide/platforms/wp8/parallel_cpu_opts.png)
+
+1. To be able to run the device emulator image within the Windows 8
+   virtual machine, choose the __Optimizations__ options and enable
+   __Nested Virtualization__.
+
+   ![](img/guide/platforms/wp8/parallel_optimize_opts.png)
+
+Once you complete these steps, you are ready to install the Windows
+Phone SDK.  See the Windows Phone 8 Platform Guide for details.
diff --git a/docs/en/5.1.1/guide/platforms/wp8/plugin.md b/docs/en/5.1.1/guide/platforms/wp8/plugin.md
new file mode 100644
index 0000000..b9a1f3e
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/wp8/plugin.md
@@ -0,0 +1,235 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone 8 Plugins
+
+This section provides details for how to implement native plugin code
+on the Windows Phone platform. Before reading this, see Plugin Development 
+Guide for an overview of the plugin's structure and its common
+JavaScript interface. This section continues to demonstrate the sample
+_echo_ plugin that communicates from the Cordova webview to the native
+platform and back.
+
+Writing a plugin for Cordova on Windows Phone requires a basic
+understanding of Cordova's architecture. Cordova-WP8 consists of a
+`WebBrowser` that hosts the application's JavaScript code and manages
+native API calls. You can extend a C# `BaseCommand` class
+(`WPCordovaClassLib.Cordova.Commands.BaseCommand`), which comes with
+most of the functionality you need:
+
+1. Select your project, and right-click to choose __Add &rarr; New
+   Item...__ If you wish, you can add it to the `Plugins` folder.
+
+2. Select __Class__ and name it `Echo.cs`.  This class name must
+   _exactly_ match what you call specify as the service in the
+   `cordova.exec()` call on the JavaScript side.
+
+3. Include the base classes implementation:
+
+        using WPCordovaClassLib.Cordova;
+        using WPCordovaClassLib.Cordova.Commands;
+        using WPCordovaClassLib.Cordova.JSON;
+
+4. Extend your class from `BaseCommand`:
+
+        public class Echo : BaseCommand
+        {
+            // ...
+        }
+
+5. Add an `echo` method that is callable from JavaScript:
+
+        public class Echo : BaseCommand
+        {
+            public void echo(string options)
+            {
+                // all JS callable plugin methods MUST have this signature!
+                // public, returning void, 1 argument that is a string
+            }
+        }
+
+See the
+[BaseCommand.cs](https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordovalib/Commands/BaseCommand.cs)
+class for methods available for the plugin to override.  For example,
+the plugin can capture 'pause' and 'resume' events.
+
+## Namespaces
+
+The default namespace for unqualified commands is:
+
+        namespace Cordova.Extension.Commands
+        {
+            // ...
+        }
+
+If you want to specify your own namespace, you need to make a fully
+qualified call to `cordova.exec`. For example, if you want to define
+your C# class like this:
+
+        namespace com.mydomain.cordovaExtensions
+        {
+            public class Echo : BaseCommand
+            {
+                // ...
+            }
+        }
+
+The JavaScript would need to call `exec` like this:
+
+        cordova.exec(win, fail, "com.mydomain.cordovaExtensions.Echo", ...);
+
+## Interpreting Arguments in C#
+
+In the example discussed in Application Plugins, the data your plugin
+receives is a string, but what if you want to pass an array of
+strings?  Suppose the JavaScript `cordova.exec` call is specified like
+this:
+
+        cordova.exec(win, fail, "Echo", "echo", ["input string"]);
+
+The value of `options` string passed to the `Echo.echo` method is
+JSON:
+
+        "[\"input string\"]"
+
+All JavaScript `exec` arguments are JSON-encoded before being passed
+into C#, and so need to be decoded:
+
+        string optVal = JsonHelper.Deserialize<string[]>(options)[0];
+        // optVal now has the value of "input string"
+
+## Passing Results from C# to JavaScript
+
+The `BaseCommand` class provides methods to pass data to JavaScript
+callback handlers.  If you simply want to signal success with no
+accompanying result, you can simply call:
+
+        DispatchCommandResult();
+        // calls back with an empty plugin result, considered a success callback
+
+To pass data back, you need to call `DispatchCommandResult`
+differently:
+
+        DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Everything went as planned, this is a result that is passed to the success handler."));
+
+Use an encoded JSON string to pass structured object data back to
+JavaScript:
+
+        DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "{result:\"super awesome!\"}"));
+
+To signal an error, call `DispatchCommandResult` with a `PluginResult`
+object whose status is `ERROR`:
+
+        DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Echo signaled an error"));
+
+## Handling Serialization Errors
+
+When interpreting your arguments, `try`/`catch` blocks help screen out
+bad input. This pattern appears throughout the Cordova C# code:
+
+        string optVal = null;
+
+        try
+        {
+            optVal = JsonHelper.Deserialize<string[]>(options)[0];
+        }
+        catch(Exception)
+        {
+            // simply catch the exception, we handle null values and exceptions together
+        }
+
+        if (optVal == null)
+        {
+            DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+        }
+        else
+        {
+            // ... continue on to do our work
+        }
+
+## Plugin Lifetime
+
+Plugins with long-running requests, background activity such as media
+playback, listeners, or that maintain internal state should implement
+the `onReset` method to clean up those activities. The method runs
+when the CordovaView WebBrowser navigates to a new page or refreshes, which
+reloads the JavaScript.
+
+        // defined in WPCordovaClassLib.Cordova.Commands.BaseCommand
+        public virtual void OnReset() { }
+
+## Plugin XML
+
+The following shows how to use the `plugin.xml` file to specify a
+plugin's source files on the Windows Phone platform.  See Application
+Plugins for an overview, and Plugin Specification for details on
+available options.
+
+- The `<source-file>` element defines all plugin resources, such
+  as _.cs_, _.xaml_, _.xaml.cs_, and _.dll_ files, and image assets.
+
+- The `<config-file>` element defines elements to inject into a
+  configuration file. This example adds a plugin to the platform's
+  `config.xml` file:
+
+        <config-file target="config.xml" parent="/*">
+            <feature name="PluginName">
+                <param name="wp-package" value="PluginName"/>
+            </feature>
+        </config-file>
+
+  This example adds the contacts capability to the `WMAppManifest.xml`
+  file:
+
+        <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
+            <Capability Name="ID_CAP_CONTACTS" />
+        </config-file>
+
+## Debugging Plugins
+
+Use Visual Studio's debugger to debug a plugin's C# component. You can
+set a break point at any of the methods exposed by your class.
+
+JavaScript is more difficult to debug on Windows Phone. You need to
+use `console.log` to output the plugin's state, or to inform
+yourself of errors.
+
+## Common Pitfalls
+
+- Be careful not to pass arguments from JavaScript to the native side
+  that are difficult to deserialize as JSON. Most device platforms
+  expect the argument passed to `cordova.exec()` to be an array, such
+  as the following:
+
+        cordova.exec(win, fail, "ServiceName", "MethodName", ["this is a string", 54, {literal:'trouble'}]);
+
+  This may result in an overly complex string value for C# to decode:
+
+        "[\"this is a string\", 54, { literal:'trouble' }]"
+
+  Instead, consider converting _all_ parameters to strings before
+  calling `exec()`, and decoding each separately:
+
+        cordova.exec(win, fail, "ServiceName", "MethodName", ["this is a string", "54", "{literal:'trouble'}"]);
+        string[] optValues = JsonHelper.Deserialize<string[]>(options);
+
+- It is usually better to check parameters in JavaScript before
+  calling `exec()`. Doing so allows you to re-use more code and pull
+  unnecessary functionality from the plugin's various native
+  implementations.
diff --git a/docs/en/5.1.1/guide/platforms/wp8/upgrade.md b/docs/en/5.1.1/guide/platforms/wp8/upgrade.md
new file mode 100644
index 0000000..17df9b8
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/wp8/upgrade.md
@@ -0,0 +1,105 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading Windows Phone 8
+
+This guide shows how to modify Windows Phone 8 projects, to upgrade from older versions of Cordova. Some of these
+instructions apply to projects created with an older set of
+command-line tools that precede the `cordova` CLI utility. See The
+Command-Line Interface for information how to update the version of
+the CLI.  The following section shows how to upgrade from non-CLI and
+CLI projects.
+
+## Upgrading 3.6.0 Projects to 4.0.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update wp8` in your existing projects.
+
+
+## Upgrade to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface. 
+
+2. Run `cordova platform update wp8`
+        
+For projects not created with the cordova CLI, run:
+
+        bin\update <project_path>
+
+## Upgrade to 3.1.0 from 3.0.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface. 
+
+2. Run `cordova platform update wp8`
+        
+For projects not created with the cordova CLI, run:
+
+        bin\update <project_path>
+
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add wp8`.
+
+3. Copy the contents of the project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`SplashScreen`, `ApplicationIcon`, etc.), making sure to add any
+   new files to the `.csproj` file. The windows phone project builds
+   inside the `platforms\wp8` directory.
+
+5. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+6. Build and test.
+
+## Upgrade to 3.0.0 (non-CLI) from 2.x
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP8 3.0.0 Project.
+
+2. Copy the contents of the `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Copy and overwrite any splash screen, or icon images.
+
+4. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project. 
+
+5. Build and test.
+
+__NOTE__: all core APIs are removed from Cordova version 3.0, and must
+be installed separately as plugins.  For more information on how to
+re-enable these features in a non-CLI workflow, see Using Plugman to
+Manage Plugins.
diff --git a/docs/en/5.1.1/guide/platforms/wp8/vmware.md b/docs/en/5.1.1/guide/platforms/wp8/vmware.md
new file mode 100644
index 0000000..2922bd9
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/wp8/vmware.md
@@ -0,0 +1,54 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Configuring VMWare Fusion
+
+This section shows how to configure VMWare Fusion on a Mac so that
+you can use Cordova to generate Windows Phone applications.
+
+The [Microsoft Developer
+Network](http://msdn.microsoft.com/en-US/library/windows/apps/jj945426)
+provides general instructions for how to run Windows under VMWare
+Fusion.  After installing Windows, follow these steps:
+
+1. Within VMWare Fusion, select the Windows 8 disk image you have
+   prepared and choose __Settings__.
+
+1. Choose the __Processors & Memory__ configuration options. Make sure
+   to specify _two_ processor cores, and to __Enable hypervisor
+   applications in this Virtual machine__:
+
+   ![](img/guide/platforms/wp8/vmware_memory_opts.png)
+
+   The Windows Phone Emulator alone uses half a gigabyte of memory, so
+   overall you should reserve at least 2GB for VMWare.
+
+1. Choose the __Advanced__ settings. Enable the __Preferred
+   virtualization engine: Intel VT-x with EPT__ option:
+
+   ![](img/guide/platforms/wp8/vmware_advanced_opts.png)
+
+1. Modify the _.vmx_ file to add or modify the following settings:
+
+        hypervisor.cpuid.v0 = "FALSE"
+        mce.enable = "TRUE"
+        vhv.enable = "TRUE"
+
+Once you complete these steps, you are then ready to install the
+Windows Phone SDK.  See the Windows Phone 8 Platform Guide for details.
diff --git a/docs/en/5.1.1/guide/platforms/wp8/webview.md b/docs/en/5.1.1/guide/platforms/wp8/webview.md
new file mode 100644
index 0000000..8976722
--- /dev/null
+++ b/docs/en/5.1.1/guide/platforms/wp8/webview.md
@@ -0,0 +1,54 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone 8.0 WebViews
+
+This guide shows how to embed a Cordova-enabled WebView component
+within a larger Windows Phone 8.0 application. 
+
+To follow these instructions, make sure you have the latest Cordova 
+distribution. Download it from 
+[cordova.apache.org](http://cordova.apache.org) and unzip its 
+Windows Phone 8.0 package (cordova-wp8-*.zip).
+
+1. Navigate to the package's `wp8/framework` directory and build
+   `WPCordovaClassLib.sln`. 
+   It creates the `Bin\Debug[Release]\WPCordovaClassLib.dll`.
+
+1. Copy the `WPCordovaClassLib.dll` file into the Windows Phone 8 project's
+    `/libs` directory and include `WPCordovaClassLib.dll` to your
+    project via `Project->References->Add Reference`.
+    Alternatively, you can directly reference the
+    `wp8/framework/WPCordovaClassLib.csproj` file.
+
+1. Add `CordovaView` component to your page (for example, `MainPage.xaml`).
+
+        xmlns:my="clr-namespace:WPCordovaClassLib;assembly=WPCordovaClassLib">
+        ...
+        <my:CordovaView HorizontalAlignment="Stretch" Margin="0,0,0,0" 
+        StartPageUri="html/index.html" x:Name="CordovaView" VerticalAlignment="Stretch" />
+
+1. Copy `common/www/cordova.js` along with the application's HTML 
+    and JavaScript files to the Windows Phone 8 project's `html` directory
+    and include new files to the project.
+
+1. Copy the `wp8/template/config.xml`to the project's root directory and 
+
+Instructions above will link core Cordova components only, 
+see Using Plugman to Manage Plugins in order to link Cordova plugins.
\ No newline at end of file
diff --git a/docs/en/5.1.1/guide/support/index.md b/docs/en/5.1.1/guide/support/index.md
new file mode 100644
index 0000000..fcc6bd3
--- /dev/null
+++ b/docs/en/5.1.1/guide/support/index.md
@@ -0,0 +1,357 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+
+---
+
+# Platform Support
+
+The following shows the set of development tools and device APIs
+available for each mobile platform. The device APIs listed here are provided by
+the core plugins, additional APIs are available via
+[third-party plugins](http://plugins.cordova.io). Column headers display the
+CLI's shorthand names.
+
+<!-- START HTML -->
+
+<table class="compat" width="100%">
+
+<thead>
+    <tr>
+        <th></td>
+        <th><tt>amazon-fireos</tt></th>
+        <th><tt>android</tt></th>
+        <th><tt>blackberry10</tt></th>
+        <th><tt>Firefox OS</tt></th>
+        <th><tt>ios</tt></th>
+        <th><tt>Ubuntu</tt></th>
+        <th><tt>wp8</tt><br/>(Windows Phone 8)</th>
+        <th><tt>windows</tt><br/>(8.0, 8.1,<br/>Phone 8.1)</th>
+        <th><tt>tizen</tt></th>
+    </tr>
+
+</thead>
+
+<tbody>
+    <tr>
+        <th><a href="guide_cli_index.md.html">cordova<br/>CLI</a></th>
+        <td data-col="amazon-fireos" class="y">Mac, Windows, Linux</td>
+        <td data-col="android"    class="y">Mac, Windows, Linux</td>
+        <td data-col="blackberry10" class="y">Mac, Windows</td>
+        <td data-col="firefoxos" class="y">Mac, Windows, Linux</td>
+        <td data-col="ios"        class="y">Mac</td>
+        <td data-col="ubuntu"        class="y">Ubuntu</td>
+        <td data-col="winphone8"  class="y">Windows</td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="guide_hybrid_webviews_index.md.html">Embedded<br/>WebView</a></th>
+        <td data-col="amazon-fireos" class="y"><a href="guide_platforms_amazonfireos_webview.md.html">(see details)</a></td>
+        <td data-col="android"    class="y"><a href="guide_platforms_android_webview.md.html">(see details)</a></td>
+        <td data-col="blackberry10" class="n"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"><a href="guide_platforms_ios_webview.md.html">(see details)</a></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="n"></td>
+        <td data-col="win8"       class="n"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="guide_hybrid_plugins_index.md.html">Plug-in<br/>Interface</a></th>
+         <td data-col="amazon-fireos" class="y"><a href="guide_platforms_amazonfireos_plugin.md.html">(see details)</a></td>
+        <td data-col="android"    class="y"><a href="guide_platforms_android_plugin.md.html">(see details)</a></td>
+        <td data-col="blackberry10" class="y"><a href="guide_platforms_blackberry10_plugin.md.html">(see details)</a></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"><a href="guide_platforms_ios_plugin.md.html">(see details)</a></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"><a href="guide_platforms_wp8_plugin.md.html">(see details)</a></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th></th>
+        <th colspan="20">Platform APIs</th>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-device-motion">Accelerometer</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-battery-status">BatteryStatus</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="n"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y">* Windows Phone 8.1 only</td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-camera">Camera</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-media-capture">Capture</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-device-orientation">Compass</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y">(3GS+)</td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-network-information">Connection</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-contacts">Contacts</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="p">partially</td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-device">Device</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_events_events.md.html">Events</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-file">File</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-file-transfer">File Transfer</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y">* Do not support onprogress nor abort</td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="n"></td>
+        <td data-col="winphone8"  class="y">* Do not support onprogress nor abort</td>
+        <td data-col="win8"       class="y">* Do not support onprogress nor abort</td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-geolocation">Geolocation</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-globalization">Globalization</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-inappbrowser">InAppBrowser</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="p">uses iframe</td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-media">Media</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-dialogs">Notification</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-splashscreen">Splashscreen</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-statusbar">Status Bar</a></th>
+        <td data-col="amazon-fireos" class="n"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="n"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="n"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y">Windows Phone 8.1 only</td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_storage_storage.md.html">Storage</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone8"  class="y">localStorage &amp; indexedDB</td>
+        <td data-col="win8"       class="y">localStorage &amp; indexedDB</td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="https://www.npmjs.com/package/cordova-plugin-vibration">Vibration</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="n"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y">* Windows Phone 8.1 only</td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+</tbody>
+</table>
+
+<!-- END HTML -->
diff --git a/docs/en/5.1.1/index.md b/docs/en/5.1.1/index.md
new file mode 100644
index 0000000..2ceebb1
--- /dev/null
+++ b/docs/en/5.1.1/index.md
@@ -0,0 +1,106 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+<div id="home">
+
+    <h1>Guides</h1>
+    <ul>
+        <li>
+            <h2>Overview</h2>
+            <span>Start here if you are new to Cordova. Includes installation and next steps.</span>
+        </li>
+        <li>
+            <h2>Platform Support</h2>
+            <span>Compatibility table for all major features.</span>
+        </li>
+        <li>
+            <h2>The Command-Line Interface</h2>
+            <span>Create, build, and deploy from the command-line.</span>
+        </li>
+        <li>
+            <h2>Platform Guides</h2>
+            <span>Set up each platform SDK and update projects.</span>
+        </li>
+        <li>
+         <h2>Using Plugman to Manage Plugins</h2>
+            <span>Manage plugins without the CLI when using the platform-centered workflow.</span>
+        </li>
+        <li>
+            <h2>The config.xml File</h2>
+            <span>Customize your app's features.</span>
+        </li>
+        <li>
+            <h2>Icons and Splash Screens</h2>
+            <span>Customize your app's displaying images.</span>
+        </li>
+        <li>
+            <h2>Embedding WebViews</h2>
+            <span>Implement the Cordova WebView in your native project.</span>
+        </li>
+        <li>
+            <h2>Plugin Development Guide</h2>
+            <span>Develop your own plugin.</span>
+        </li>
+        <li>
+            <h2>Privacy Guide</h2>
+            <span>Learn about important mobile privacy issues.</span>
+        </li>
+        <li>
+            <h2>Security Guide</h2>
+            <span>Information and tips for building a secure application.</span>
+        </li>
+        <li>
+            <h2>Platforms and Plugins Version Management</h2>
+            <span>Save and Restore your CLI projects to a known state without hassle.</span>
+        </li>
+        <li>
+            <h2>Whitelist Guide</h2>
+            <span>Grant an application access to external resources.</span>
+        </li>
+        <li>
+            <h2>Storage</h2>
+            <span>An overview of native storage options.</span>
+        </li>
+        <li>
+            <h2>Hooks Guide</h2>
+            <span>Extend default Cordova functionality by adding custom scripts.</span>
+        </li>
+        <li>
+            <h2>Next Steps</h2>
+            <span>A look at topics that new Cordova developers will encounter.</span>
+        </li>
+        <li>
+            <h2><a href="_index.html">Keyword Index</a></h2>
+            <span>Full index of the documentation.</span>
+        </li>
+    </ul>
+
+    <h1>API Reference</h1>
+    <ul>
+        <li>
+            <h2>Events</h2>
+            <span>Hook into native events through JavaScript.</span>
+        </li>
+        <li>
+            <h2>Plugin APIs</h2>
+            <span>Discover what Cordova plugins are available to use in your project.</span>
+        </li>
+    </ul>
+
+</div>
diff --git a/docs/en/5.1.1/platform_plugin_versioning_ref/index.md b/docs/en/5.1.1/platform_plugin_versioning_ref/index.md
new file mode 100644
index 0000000..749b1e7
--- /dev/null
+++ b/docs/en/5.1.1/platform_plugin_versioning_ref/index.md
@@ -0,0 +1,140 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Platforms and Plugins Version Management
+From version 4.3.0 onwards, Cordova provides the ability to save and restore platforms and plugins. 
+
+This feature allows developers to save and restore their app to a known state without having to check in all of the platform and plugin source code.
+
+The 'save' command stores details about the app's platform and plugin versions in config.xml.
+The 'restore' step happens automatically when a **'cordova prepare'** is issued, making use of information previously saved in the config.xml file.
+
+One scenario where save/restore capabilities come in handy is in large teams that work on an app, with each team member focusing on a platform or plugin. This feature makes it easier to share the project and reduce the amount of redundant code that is checked in the repository.
+
+
+## Platform Versioning
+
+### Saving platforms
+To save a platform, you issue the following command :
+
+    $ cordova platform add <platform[@<version>] | directory | git_url> --save
+
+After running the above command, the resulting config.xml looks like :
+
+    <?xml version='1.0' encoding='utf-8'?>
+        ...
+        <engine name="android" spec="^4.0.0" />
+        ...
+    </ xml>
+
+
+Some examples :
+  * **'cordova platform add android --save'** => retrieves the pinned version of the android platform, adds it to the project and then updates config.xml.
+  * **'cordova platform add android@3.7.0 --save'** => retrieves the android platform, version 3.7.0 from npm, adds it to the project and then updates config.xml.
+  * **'cordova platform add android@https://github.com/apache/cordova-android.git​ --save'** => clones the specified cordova-android git repository, adds the android platform to the project, then updates config.xml and point its version to the specified git-url.
+  * **'cordova platform add C:/path/to/android/platform --save'** => retrieves the android platform from the specified directory, adds it to the project, then updates config.xml and point to the directory.
+
+### Mass saving platforms on an existing project
+The '--save' flag described above is only useful when you remember to use it during the platform addition.
+If you have a pre-existing project and you want to save all the currently added platforms in your project, you can use :
+
+    $ cordova platform save
+
+
+### Updating / Removing platforms
+It is also possible to update/delete from config.xml during the commands 'cordova platform update' and 'cordova platform remove' :
+
+    $ cordova platform update <platform[@<version>] | directory | git_url> --save
+    $ cordova platform remove <platform> --save
+Some examples :
+  * **'cordova platform update android --save'** => In addition to updating the android platform to the pinned version, update config.xml entry
+  * **'cordova platform update android@3.8.0 --save'** => In addition to updating the android platform to version 3.8.0, update config.xml entry
+  * **'cordova platform update /path/to/android/platform --save'** => In addition to updating the android platform to version in the folder, update config.xml entry
+  * **'cordova platform remove android --save'** => Removes the android platform from the project and deletes its entry from config.xml.
+
+
+### Restoring platforms
+  * Platforms are automatically restored from config.xml when the **'cordova prepare'** command is run.
+  * If you add a platform without specifying a version/folder/git_url, the version to install is taken from config.xml, **if found**.
+    * Example:
+      Suppose your config.xml file contains the following entry:
+          <?xml version='1.0' encoding='utf-8'?>
+              ...
+              <engine name="android" spec="3.7.0" />
+              ...
+          </ xml>
+      If you run the command **'cordova platform add android'** (no version/folder/git_url specified), the platform 'android@3.7.0' (as retrieved from config.xml) will be installed.
+
+
+
+---
+
+## Plugin Versioning
+_(The plugin commands are a mirror of the plugin commands)_
+
+### Saving plugins
+To save a plugin, you issue the following command :
+
+    $ cordova plugin add <plugin[@<version>] | directory | git_url> --save
+
+After running the above command, the resulting config.xml looks like :
+
+    <?xml version='1.0' encoding='utf-8'?>
+        ...
+        <plugin name="cordova-plugin-console" spec="^1.0.0" />
+        ...
+    </ xml>
+
+
+Some examples :
+  * **'cordova plugin add cordova-plugin-console --save'** => retrieves the pinned version of the console plugin, adds it to the project and then updates config.xml.
+  * **'cordova plugin add cordova-plugin-console@0.2.13 --save'** => retrieves the android plugin, version 0.2.13 from npm, adds it to the project and then updates config.xml.
+  * **'cordova plugin add https://github.com/apache/cordova-plugin-console.git --save'** => clones the specified console plugin git repository, adds the console plugin to the project, then updates config.xml and point its version to the specified git-url.
+  * **'cordova plugin add C:/path/to/console/plugin --save'** => retrieves the console plugin from the specified directory, adds it to the project, then updates config.xml and point to the directory.
+
+### Mass saving plugins on an existing project
+The '--save' flag described above is only useful when you remember to use it during the plugin addition.
+If you have a pre-existing project and you want to save all currently added plugins in the project, you can use :
+
+    $ cordova plugin save
+
+
+### Updating / Removing plugins
+It is also possible to update/delete from config.xml during the commands 'cordova plugin update' and 'cordova plugin remove' :
+
+    $ cordova plugin update <plugin[@<version>] | directory | git_url> --save
+    $ cordova plugin remove <plugin> --save
+Some examples :
+  * **'cordova plugin update cordova-plugin-console --save'** => In addition to updating the console plugin to the pinned version, update config.xml entry
+  * **'cordova plugin update cordova-plugin-console@0.2.13 --save'** => In addition to updating the android plugin to version 3.8.0, update config.xml entry
+  * **'cordova plugin update /path/to/console/plugin --save'** => In addition to updating the console plugin to version in the folder, update config.xml entry
+  * **'cordova plugin remove cordova-plugin-console --save'** => Removes the console plugin from the project and deletes its entry from config.xml.
+
+
+### Restoring plugins
+  * Plugins are automatically restored from config.xml when the **'cordova prepare'** command is run.
+  * If you add a plugin without specifying a version/folder/git_url, the version to be installed is taken from config.xml, **if found**.
+    * Example:
+      Suppose your config.xml file contains the following entry:
+          <?xml version='1.0' encoding='utf-8'?>
+              ...
+              <plugin name="cordova-plugin-console" spec="0.2.11" />
+              ...
+          </ xml>
+      If you run the command **'cordova plugin add cordova-plugin-console'** (no version/folder/git_url specified), the plugin 'cordova-plugin-console@0.2.11' (as retrieved from config.xml) will be installed.
diff --git a/docs/en/5.1.1/plugin_ref/plugman.md b/docs/en/5.1.1/plugin_ref/plugman.md
new file mode 100644
index 0000000..ccf6124
--- /dev/null
+++ b/docs/en/5.1.1/plugin_ref/plugman.md
@@ -0,0 +1,203 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Using Plugman to Manage Plugins
+
+From version 3.0 onward, Cordova implements all device APIs as
+plugins, and leaves them disabled by default. It also supports two
+different ways to add and remove plugins, depending on your choice of
+workflow discussed in the Overview:
+
+- If you use a cross-platform workflow, you use the `cordova` CLI
+  utility to add plugins, as described in The Command-Line Interface.
+  The CLI modifies plugins for all specified platforms at once.
+
+- If you use a platform-centered workflow, you use a lower-level
+  [Plugman](https://github.com/apache/cordova-plugman/) command-line
+  interface, separately for each targeted platform.
+
+This section details the Plugman utility.  For more information on
+consuming Plugman as a node module or modifying the source code, see
+[the README file in its repository](https://github.com/apache/cordova-plugman/blob/master/README.md).
+
+## Installing Plugman
+
+To install plugman, you must have [node](http://nodejs.org/) installed
+on your machine. Then you can run the following command from anywhere
+in your environment to install plugman globally, so that it is
+available from any directory:
+
+    $ npm install -g plugman
+
+You must have also have `git` on your `PATH` to be able to install plugins directly from remote git URLs.
+
+__TIP__: If you find that after installing plugman with `npm` you are
+still unable to run any `plugman` commands, make sure that you have
+added the `/npm/` directory into your `PATH`.
+
+__NOTE__: You can skip this step if you don't want to pollute your
+global `npm` namespace by installing Plugman globally. If this is the
+case, then when you create a Cordova project with the shell tools,
+there will be a `node_modules` directory inside your project which
+contains Plugman.  Since you did not install globally, you need to
+invoke `node` for each Plugman command, for example `node
+./node_modules/plugman/main.js -version`.  The rest of this guide
+assumes you have installed Plugman globally, meaning you can invoke it
+with just `plugman`.
+
+## Create a Cordova Project
+
+Before you can use Plugman, you must create a Cordova project.  You can do this with either the Command-line Interface or with
+the lower level shell scripts. Instructions for using the shell scripts to create your project are located in the various "Command-line Tools" guides
+listed on the Platform Guides page. 
+
+## Adding a Plugin
+
+Once you have installed Plugman and have created a Cordova project, you can start adding plugins to the platform with:
+
+    $ plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]
+
+Using minimum parameters, this command installs a plugin into a cordova project. You must specify a platform and cordova project location for that platform. You also must specify a plugin, with the different `--plugin` parameter forms being:
+
+  * `name`: The directory name where the plugin contents exist. This must be an existing directory under the `--plugins_dir` path (see below for more info) or a plugin in the Cordova registry.
+  * `url`: A URL starting with https:// or git://, pointing to a valid git repository that is clonable and contains a `plugin.xml` file. The contents of this repository would be copied into the `--plugins_dir`.
+  * `path`: A path to a directory containing a valid plugin which includes a `plugin.xml` file. This path's contents will be copied into the `--plugins_dir`.
+  
+Other parameters: 
+
+* `--plugins_dir` defaults to `<project>/cordova/plugins`, but can be any directory containing a subdirectory for each fetched plugin.
+* `--www` defaults to the project's `www` folder location, but can be any directory that is to be used as cordova project application web assets.
+* `--variable` allows to specify certain variables at install time, necessary for certain plugins requiring API keys or other custom, user-defined parameters. Please see the [plugin specification](plugin_ref_spec.md.html#Plugin%20Specification) for more information.
+
+## Remove a Plugin
+
+To uninstall a plugin, you simply pass the `--uninstall` flag and provide the plugin ID.
+
+    $ plugman --uninstall --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
+
+
+## Help Commands
+
+Plugman features a global help command which may help you if you get stuck or are experiencing problems. It will display
+a list of all available Plugman commands and their syntax:
+
+    plugman -help
+    plugman  # same as above
+
+   **NOTE**: `plugman -help` may show some additional registry-related commands. These commands are for plugin developers and may not be implemented on third-party plugin registries.
+
+
+You can also append the `--debug|-d` flag to any Plugman command to run that command in verbose mode, which will display
+any internal debugging messages as they are emitted and may help you track down problems like missing files. 
+
+    # Adding Android battery-status plugin to "myProject":
+    plugman -d --platform android --project myProject --plugin cordova-plugin-battery-status
+
+Finally, you can use the `--version|-v` flag to see which version of Plugman you are using.
+
+    plugman -v
+    
+## Registry Actions
+
+There are a number of plugman commands that can be used for interacting with the [Plugin registry](http://plugins.cordova.io).
+Please note that these registry commands are specific to the _plugins.cordova.io_ plugin registry and may not be implemented by
+third-party plugin registries.
+
+### Searching for a Plugin
+
+You can use Plugman to search the [Plugin registry](http://plugins.cordova.io) for plugin id's that match the given space separated list of keywords.
+
+    plugman search <plugin keywords>
+
+### Changing the Plugin Registry
+
+You can get or set the URL of the current plugin registry that plugman is using. Generally you should leave this set at http://registry.cordova.io unless you want to use a third party plugin registry.
+
+    plugman config set registry <url-to-registry>
+    plugman config get registry
+
+### Get Plugin Information
+
+You can get information about any specific plugin stored in the plugin repository with:
+
+    plugman info <id>
+
+This will contact the plugin registry and fetch information such as the plugin's version number. 
+
+## Installing Core Plugins
+
+The examples below show how to add plugins as needed so that any
+Cordova APIs you use in your project still work after you upgrade to
+version 3.0.  For each command, you need to select the target
+platform, and reference the platform's project directory.
+
+* cordova-plugin-battery-status
+
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-battery-status
+
+* cordova-plugin-camera
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-camera
+    
+* cordova-plugin-console
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-console
+
+* cordova-plugin-contacts
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-contacts
+    
+* cordova-plugin-device
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-device
+
+* cordova-plugin-device-motion (accelerometer)
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-device-motion
+
+* cordova-plugin-device-orientation (compass)
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-device-orientation
+
+* cordova-plugin-dialogs
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-dialogs
+
+* cordova-plugin-file
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-file
+
+* cordova-plugin-file-transfer
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-file-transfer
+
+* cordova-plugin-geolocation
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-geolocation
+
+* cordova-plugin-globalization
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-globalization
+
+* cordova-plugin-inappbrowser
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-inappbrowser
+
+* cordova-plugin-media
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-media
+
+* cordova-plugin-media-capture
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-media-capture
+
+* cordova-plugin-network-information
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-network-information
+
+* cordova-plugin-splashscreen
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-splashscreen
+
+* cordova-plugin-vibration
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp8> --project <directory> --plugin cordova-plugin-vibration
diff --git a/docs/en/5.1.1/plugin_ref/spec.md b/docs/en/5.1.1/plugin_ref/spec.md
new file mode 100644
index 0000000..8ebaf2d
--- /dev/null
+++ b/docs/en/5.1.1/plugin_ref/spec.md
@@ -0,0 +1,689 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Plugin Specification
+
+The `plugin.xml` file is an XML document in the `plugins` namespace:
+`http://apache.org/cordova/ns/plugins/1.0`. It contains a top-level
+`plugin` element that defines the plugin, and children that define the
+structure of the plugin.
+
+A sample plugin element:
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        id="com.alunny.foo"
+        version="1.0.2">
+
+## _plugin_ Element
+
+The `plugin` element is the plugin manifest's top-level element. It
+features the following attributes:
+
+* `xmlns` (required):
+  The plugin namespace, `http://apache.org/cordova/ns/plugins/1.0`. If
+  the document contains XML from other namespaces, such as tags to be
+  added to the `AndroidManifest.xml` file, those namespaces should
+  also be included in the top-level element.
+
+* `id` (required):
+  A reverse-domain style identifier for the plugin, such as
+  `com.alunny.foo`
+
+* `version` (required):
+  A version number for the plugin, that matches the following
+  major-minor-patch style regular expression:
+
+        ^\d+[.]\d+[.]\d+$
+
+## _engines_ and _engine_ Elements
+
+The child elements of the `<engines>` element specify versions of
+Apache Cordova-based frameworks that this plugin supports. An example:
+
+    <engines>
+        <engine name="cordova" version="1.7.0" />
+        <engine name="cordova" version="1.8.1" />
+        <engine name="worklight" version="1.0.0" platform="android" scriptSrc="worklight_version"/>
+    </engines>
+
+Similar to the `<plugin>` element's `version` attribute, the specified
+version string should match a major-minor-patch string conforming to
+the regular expression:
+
+        ^\d+[.]\d+[.]\d+$
+
+Engine elements may also specify fuzzy matches to avoid repetition,
+and to reduce maintenance when the underlying platform is updated.
+Tools should support a minimum of `>`, `>=`, `<` and `<=`, for
+example:
+
+    <engines>
+        <engine name="cordova" version=">=1.7.0" />
+        <engine name="cordova" version="<1.8.1" />
+    </engines>
+
+The `<engine>` tags also has default support for all of the main platforms Cordova exists on. 
+Specifying the `cordova` engine tag means that all versions of Cordova on any platform must
+satisfy the engine version attribute. You may also list specific platforms and their versions
+in order to override the catch-all `cordova` engine:
+
+    <engines>
+        <engine name="cordova" version=">=1.7.0" />
+        <engine name="cordova-android" version=">=1.8.0" />
+        <engine name="cordova-ios" version=">=1.7.1" />
+    </engines>
+
+Here's a list of the default engines that the '<engine>' tag supports:
+* 'cordova' 
+* 'cordova-plugman' 
+* 'cordova-amazon-fireos'
+* 'cordova-android'
+* 'cordova-ios'
+* 'cordova-blackberry10' 
+* 'cordova-wp8'
+* 'cordova-windows8'  
+* 'android-sdk' // returns the highest Android api level installed
+* 'apple-xcode' // returns the xcode version 
+* 'apple-ios' // returns the highest iOS version installed
+* 'apple-osx' // returns the OSX version
+* 'blackberry-ndk' // returns the native blackberry SDK version
+        
+Specifying custom Apache Cordova-based frameworks should be listed under the engine tag like so:
+
+    <engines>
+        <engine name="my_custom_framework" version="1.0.0" platform="android" scriptSrc="path_to_my_custom_framework_version"/>
+        <engine name="another_framework" version=">0.2.0" platform="ios|android" scriptSrc="path_to_another_framework_version"/>
+        <engine name="even_more_framework" version=">=2.2.0" platform="*" scriptSrc="path_to_even_more_framework_version"/>
+    </engines>
+
+A custom Apache Cordova-based framework requires that an engine element includes the following attributes: 
+`name`, `version`, `scriptSrc`, and `platform`. 
+
+* `name` (required): A human-readable name for your custom framework. 
+
+* `version` (required): The version that your framework must have in order to install.
+
+* `scriptSrc` (required): The script file that tells plugman what version of the custom framework is. 
+Ideally, this file should be within the top level directory of your plugin directory.
+
+* `platform` (required): Which platforms that your framework supports. You may use the wildcard `*`
+to say supported for all platforms, specify multiple with a pipe character like `android|ios|blackberry10` 
+or just a single platform like `android`.
+
+plugman aborts with a non-zero code for any plugin whose target
+project does not meet the engine's constraints.
+
+If no `<engine>` tags are specified, plugman attempts to install into
+the specified cordova project directory blindly.
+
+## _name_ Element
+
+A human-readable name for the plugin, whose text content contains the
+name of the plugin. For example:
+
+    <name>Foo</name>
+
+This element does not (yet) handle localization.
+
+## _description_ Element
+
+A human-readable description for the plugin. The text content of the element contains
+the description of the plugin. An example:
+
+    <description>Foo plugin description</description>
+
+This element does not (yet) handle localization.
+
+## _author_ Element
+
+Plugin author name. The text content of the element contains
+the name of the plugin author. An example:
+
+    <author>Foo plugin description</author>
+
+## _keywords_ Element
+
+Plugin keywords. The text content of the element contains comma separated keywords to describe the plugin. An example:
+
+    <keywords>foo,bar</keywords>
+
+## _license_ Element
+
+Plugin license. The text content of the element contains the plugin license. An example:
+
+    <license>Apache 2.0 License</license>
+
+## _asset_ Element
+
+One or more elements listing the files or directories to be copied
+into a Cordova app's `www` directory. Examples:
+
+    <!-- a single file, to be copied in the root directory -->
+    <asset src="www/foo.js" target="foo.js" />
+    <!-- a directory, also to be copied in the root directory -->
+    <asset src="www/foo" target="foo" />
+
+All `<asset>` tags require both `src` and `target` attributes.
+Web-only plugins contains mostly `<asset>` elements. Any `<asset>`
+elements that are nested within `<platform>` elements specify
+platform-specific web assets, as described below. Attributes include:
+
+* `src` (required): 
+  Where the file or directory is located in the plugin package,
+  relative to the `plugin.xml` document.  If a file does not exist at
+  the specified `src` location, plugman stops and reverses the
+  installation process, issues a notification about the conflict, and
+  exits with a non-zero code.
+
+* `target` (required):
+
+  Where the file or directory should be located in the Cordova app,
+  relative to the `www` directory.
+  Assets can be targeted to subdirectories, for example:
+
+        <asset src="www/new-foo.js" target="js/experimental/foo.js" />
+
+  creates the `js/experimental` directory within the `www` directory,
+  unless already present, then copies the `new-foo.js` file and
+  renames it `foo.js`.  If a file already exists at the target
+  location, plugman stops and reverses the installation process,
+  issues a notification about the conflict, and exits with a non-zero
+  code.
+
+## _js-module_ Element
+
+Most plugins include one or more JavaScript files.  Each `<js-module>`
+tag corresponds to a JavaScript file, and prevents the plugin's users
+from having to add a `<script>` tag for each file.  While `<asset>`
+tags simply copy a file from the plugin subdirectory into `www`,
+`<js-module>` tags are much more sophisticated. They look like this:
+
+    <js-module src="socket.js" name="Socket">
+        <clobbers target="chrome.socket" />
+    </js-module>
+
+When installing a plugin with the example above, `socket.js` is copied
+to `www/plugins/my.plugin.id/socket.js`, and added as an entry to
+`www/cordova_plugins.js`. At load time, code in `cordova.js` uses XHR
+to read each file and inject a `<script>` tag into HTML. It adds a
+mapping to clobber or merge as appropriate, as described below.
+
+_Do not_ wrap the file with `cordova.define`, as it is added
+automatically. The module is wrapped in a closure, with `module`,
+`exports`, and `require` in scope, as is normal for AMD modules.
+
+Details for the `<js-module>` tag:
+
+* The `src` references a file in the plugin directory relative to the
+  `plugin.xml` file.
+
+* The `name` provides the last part of the module name. It can
+  generally be whatever you like, and it only matters if you want to
+  use `cordova.require` to import other parts of your plugins in your
+  JavaScript code. The module name for a `<js-module>` is your
+  plugin's `id` followed by the value of `name`. For the example
+  above, with an `id` of `chrome.socket`, the module name is
+  `chrome.socket.Socket`.
+
+* Three tags are allowed within `<js-module>`:
+
+    - `<clobbers target="some.value"/>` indicates that the
+      `module.exports` is inserted into the `window` object as
+      `window.some.value`. You can have as many `<clobbers>` as you
+      like. Any object not available on `window` is created.
+
+    - `<merges target="some.value"/>` indicates that the module
+      should be merged with any existing value at `window.some.value`.
+      If any key already exists, the module's version overrides the
+      original. You can have as many `<merges>` as you like. Any
+      object not available on `window` is created.
+
+    - `<runs/>` means that your code should be specified with
+      `cordova.require`, but not installed on the `window`
+      object. This is useful when initializing the module, attaching
+      event handlers or otherwise. You can only have up to one
+      `<runs/>` tag. Note that including a `<runs/>` with
+      `<clobbers/>` or `<merges/>` is redundant, since they also
+      `cordova.require` your module.
+
+    - An empty `<js-module>` still loads and can be accessed in other
+      modules via `cordova.require`.
+
+If `src` does not resolve to an existing file, plugman stops and
+reverses the installation, issues a notification of the problem, and
+exits with a non-zero code.
+
+Nesting `<js-module>` elements within `<platform>` declares
+platform-specific JavaScript module bindings.
+
+## _dependency_ Element
+
+The `<dependency>` tag allows you to specify other plugins on which the
+current plugin depends. While future versions will access them from
+plugin repositories, in the short term plugins are directly referenced
+as URLs by `<dependency>` tags. They are formatted as follows:
+
+    <dependency id="com.plugin.id" url="https://github.com/myuser/someplugin" commit="428931ada3891801" subdir="some/path/here" />
+
+* `id`: provides the ID of the plugin. It should be globally unique,
+  and expressed in reverse-domain style. While neither of these
+  restrictions is currently enforced, they may be in the future.
+
+* `url`: A URL for the plugin. This should reference a git repository,
+  which plugman attempts to clone.
+
+* `commit`: This is any git reference understood by `git checkout`: a
+  branch or tag name (e.g., `master`, `0.3.1`), or a commit hash (e.g.,
+  `975ddb228af811dd8bb37ed1dfd092a3d05295f9`).
+
+* `subdir`: Specifies that the targeted plugin dependency exists as a
+  subdirectory of the git repository. This is helpful because it
+  allows the repository to contain several related plugins, each
+  specified individually.
+
+In the future, version constraints will be introduced, and a plugin
+repository will exist to support fetching by name instead of explicit
+URLs.
+
+### Relative Dependency Paths
+
+If you set the `url` of a `<dependency>` tag to `"."` and provide a
+`subdir`, the dependent plugin is installed from the same local or
+remote git repository as the parent plugin that specifies the
+`<dependency>` tag.
+
+Note that the `subdir` always specifies a path relative to the _root_
+of the git repository, not the parent plugin. This is true even if you
+installed the plugin with a local path directly to it. Plugman finds
+the root of the git repository and then finds the other plugin from
+there.
+
+## _platform_ Element
+
+The `<platform>` tag identifies platforms that have associated native
+code or require modifications to their configuration files. Tools
+using this specification can identify supported platforms and install
+the code into Cordova projects.
+
+Plugins without `<platform>` tags are assumed to be JavaScript-only,
+and therefore installable on any and all platforms.
+
+A sample platform tag:
+
+    <platform name="android">
+        <!-- android-specific elements -->
+    </platform>
+    <platform name="ios">
+        <!-- ios-specific elements -->
+    </platform>
+
+The required `name` attribute identifies a platform as supported,
+associating the element's children with that platform.
+
+Platform names should be lowercase. Platform names, as arbitrarily
+chosen, are listed:
+
+* amazon-fireos
+* android
+* blackberry10
+* ios
+* wp8
+* windows8
+
+## _source-file_ Element
+
+The `<source-file>` element identifies executable source code that
+should be installed into a project. Examples:
+
+    <!-- android -->
+    <source-file src="src/android/Foo.java"
+                    target-dir="src/com/alunny/foo" />
+    <!-- ios -->
+    <source-file src="src/ios/CDVFoo.m" />
+    <source-file src="src/ios/someLib.a" framework="true" />
+    <source-file src="src/ios/someLib.a" compiler-flags="-fno-objc-arc" />
+
+It supports the following attributes:
+
+* `src` (required):
+  Location of the file relative to `plugin.xml`.  If the `src` file
+  can't be found, plugman stops and reverses the installation, issues
+  a notification about the problem, and exits with a non-zero code.
+
+* `target-dir`:
+  A directory into which the files should be copied, relative to the
+  root of the Cordova project.  In practice, this is most important
+  for Java-based platforms, where a file in the `com.alunny.foo`
+  package must be located within the `com/alunny/foo` directory. For
+  platforms where the source directory is not important, this
+  attribute should be omitted.
+
+  As with assets, if the `target` of a `source-file` would overwrite
+  an existing file, plugman stops and reverses the installation,
+  issues a notification about the problem, and exits with a non-zero
+  code.
+
+* `framework` (iOS only):
+  If set to `true`, also adds the specified file as a framework to the
+  project.
+
+* `compiler-flags` (iOS only):
+  If set, assigns the specified compiler flags for the particular
+  source file.
+
+## _config-file_ Element
+
+Identifies an XML-based configuration file to be modified, where in
+that document the modification should take place, and what should be
+modified.
+
+Two file types that have been tested for modification with this
+element are `xml` and `plist` files.
+
+The `config-file` element only allows you to append new children to an
+XML document tree. The children are XML literals to be inserted in the
+target document.
+
+Example for XML:
+
+    <config-file target="AndroidManifest.xml" parent="/manifest/application">
+        <activity android:name="com.foo.Foo" android:label="@string/app_name">
+            <intent-filter>
+            </intent-filter>
+        </activity>
+    </config-file>
+
+Example for `plist`:
+
+    <config-file target="*-Info.plist" parent="CFBundleURLTypes">
+        <array>
+            <dict>
+                <key>PackageName</key>
+                <string>$PACKAGE_NAME</string>
+            </dict>
+        </array>
+    </config-file>
+
+It supports the following attributes:
+
+* `target`:
+
+  The file to be modified, and the path relative to the root of the
+  Cordova project.
+
+  The target can include wildcard (`*`) elements. In this case,
+  plugman recursively searches through the project directory structure
+  and uses the first match.
+
+  On iOS, the location of configuration files relative to the project
+  directory root is not known, so specifying a target of `config.xml`
+  resolves to `cordova-ios-project/MyAppName/config.xml`.
+
+  If the specified file does not exist, the tool ignores the
+  configuration change and continues installation.
+
+* `parent`: An XPath selector referencing the parent of the elements
+  to be added to the config file. If you use absolute selectors, you
+  can use a wildcard (`*`) to specify the root element,
+  e.g., `/*/plugins`.
+
+  For `plist` files, the `parent` determines under what parent key the
+  specified XML should be inserted.
+
+  If the selector does not resolve to a child of the specified
+  document, the tool stops and reverses the installation process,
+  issues a warning, and exits with a non-zero code.
+
+* `after`: A prioritized list of accepted siblings after which to add the XML snippet. Useful for specifying changes in files which require strict ordering of XML elements like [http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769509%28v=vs.105%29.aspx#BKMK_EXTENSIONSelement](http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769509%28v=vs.105%29.aspx#BKMK_EXTENSIONSelement)
+
+The Windows platform supports two additional attributes (both optional) when affecting the meta-name `package.appxmanifest`:
+
+The `device-target` attribute indicates that the  should only be included when building for the specified target device
+type. Supported values are `win`, `phone`, or `all`.
+
+The `versions` attribute indicates that app manifests for specific Windows versions should only be altered for versions that match the
+specified version string. Value can be any valid node semantic version range string.
+
+Examples of using these Windows specific attributes:
+
+    <config-file target="package.appxmanifest" parent="/Package/Capabilities" versions="<8.1.0">
+        <Capability Name="picturesLibrary" />
+        <DeviceCapability Name="webcam" />
+    </config-file>
+    <config-file target="package.appxmanifest" parent="/Package/Capabilities" versions=">=8.1.0" device-target="phone">
+        <DeviceCapability Name="webcam" />
+    </config-file>
+
+The above example will set pre-8.1 platforms (Windows 8, specifically) to require the `webcam` device capability and the `picturesLibrary` general capability, and apply the `webcam` device capability only to Windows 8.1 projects that build for Windows Phone.  Windows desktop 8.1 systems are unmodified. 
+
+## _plugins-plist_ Element
+
+This is _outdated_ as it only applies to cordova-ios 2.2.0 and
+below. Use the `<config-file>` tag for newer versions of Cordova.
+
+Example:
+
+    <config-file target="config.xml" parent="/widget/plugins">
+        <feature name="ChildBrowser">
+            <param name="ios-package" value="ChildBrowserCommand"/>
+        </feature>
+    </config-file>
+
+Specifies a key and value to append to the correct `AppInfo.plist`
+file in an iOS Cordova project. For example:
+
+    <plugins-plist key="Foo" string="CDVFoo" />
+
+## _resource-file_ and _header-file_ Elements
+
+Like source files, but specifically for platforms such as iOS that
+distinguish between source files, headers, and resources. iOS Examples:
+
+    <resource-file src="CDVFoo.bundle" />
+    <resource-file src="CDVFooViewController.xib" />
+    <header-file src="CDVFoo.h" />
+
+Android example:
+
+    <resource-file src="FooPluginStrings.xml" target="res/values/FooPluginStrings.xml" />
+
+## _lib-file_ Element
+
+Like source, resource, and header files, but specifically for
+platforms such as BlackBerry 10 that use user-generated libraries.
+Examples:
+
+    <lib-file src="src/BlackBerry10/native/device/libfoo.so" arch="device" />
+    <lib-file src="src/BlackBerry10/native/simulator/libfoo.so" arch="simulator" />
+
+Supported attributes:
+
+* `src` (required):
+  The location of the file relative to `plugin.xml`.
+  If `src` can't be found, plugman stops and reverses the
+  installation, issues a warning about the problem, and exits with a
+  non-zero code.
+
+* `arch`: The architecture for which the `.so` file has been built,
+  either `device` or `simulator`.
+
+For the Windows platform, the `<lib-file>` element allows the inclusion of an `<SDKReference>` in the generated Windows
+project files.
+
+Supported attributes:
+
+* `src` (required):
+  The name of the SDK to include (which will be used as value of the `Include` attribute of the generated
+  `<SDKReference>` element).
+
+* `arch`: Indicates that the `<SDKReference>` should only be included when building for the specified architecture.
+  Supported values are `x86`, `x64` or `ARM`.
+
+* `device-target`: Indicates that the `<SDKReference>` should only be included when building for the specified target device
+  type. Supported values are `win` (or `windows`), `phone` or `all`.
+
+* `versions`: Indicates that the `<SDKReference>` should only be included when building for versions that match the specified version
+  string. Value can be any valid node semantic version range string.
+
+Examples:
+
+    <lib-file src="Microsoft.WinJS.2.0, Version=1.0" arch="x86" />
+    <lib-file src="Microsoft.WinJS.2.0, Version=1.0" versions=">=8.1" />
+    <lib-file src="Microsoft.WinJS.2.0, Version=1.0" target="phone" />
+    <lib-file src="Microsoft.WinJS.2.0, Version=1.0" target="win" versions="8.0" arch="x86" />
+
+## _framework_ Element
+
+Identifies a framework (usually part of the OS/platform) on which the plugin depends.
+
+The optional `custom` attribute is a boolean indicating whether the framework is one that is included as part of your
+plugin files (thus it is not a system framework).
+
+### _framework_ for iOS
+
+    <framework src="libsqlite3.dylib" />
+    <framework src="social.framework" weak="true" />
+    <framework src="relative/path/to/my.framework" custom="true" />
+
+The optional `weak` attribute is a boolean indicating whether the
+framework should be weakly linked. The default is `false`.
+
+### _framework_ for Android
+
+On Android (as of cordova-android@4.0.0), _framework_ tags are used to include Maven dependencies, or to include bundled library projects.
+
+Examples:
+
+    <!-- Depend on latest version of GCM from play services -->
+    <framework src="com.google.android.gms:play-services-gcm:+" />
+    <!-- Depend on v21 of appcompat-v7 support library -->
+    <framework src="com.android.support:appcompat-v7:21+" />
+    <!-- Depend on library project included in plugin -->
+    <framework src="relative/path/FeedbackLib" custom="true" />
+
+_framework_  can also be used to have custom .gradle files sub-included into the main project's .gradle file:
+
+    <framework src="relative/path/rules.gradle" custom="true" type="gradleReference" />
+
+For pre-android@4.0.0 (ANT-based projects):
+
+The optional `type` attribute is a string indicating the type of framework to add. Currently only `projectReference` is
+supported and only for Windows.  Using `custom='true'` and `type='projectReference'` will add a reference to the project
+which will be added to the compile+link steps of the cordova project.  This essentially is the only way currently that a
+'custom' framework can target multiple architectures as they are explicitly built as a dependency by the referencing
+cordova application.
+
+The optional `parent` sets the relative path to the directory containing the
+sub-project to which to add the reference. The default is `.`, i.e. the
+application project. It allows to add references between sub projects like in this example:
+
+    <framework src="extras/android/support/v7/appcompat" custom="false" parent="FeedbackLib" />
+
+### _framework_ for Windows
+
+The Windows platform supports three additional attributes (all optional) to refine when the framework should be included:
+
+    <framework src="path/to/project/LibProj.csproj" custom="true" type="projectReference"/>
+
+The `arch` attribute indicates that the framework should only be included when building for the specified architecture.
+Supported values are `x86`, `x64` or `ARM`.
+
+The `device-target` attribute indicates that the framework should only be included when building for the specified target device
+type. Supported values are `win` (or `windows`), `phone` or `all`.
+
+The `versions` attribute indicates that the framework should only be included when building for versions that match the
+specified version string. Value can be any valid node semantic version range string.
+
+Examples of using these Windows specific attributes:
+
+    <framework src="src/windows/example.dll" arch="x64" />
+    <framework src="src/windows/example.dll" versions=">=8.0" />
+    <framework src="src/windows/example.vcxproj" type="projectReference" target="win" />
+    <framework src="src/windows/example.vcxproj" type="projectReference" target="all" versions="8.1" arch="x86" />
+
+## _info_ Element
+
+Additional information provided to users. This is useful when you
+require extra steps that can't be easily automated or are beyond
+plugman's scope.  Examples:
+
+    <info>
+    You need to install __Google Play Services__ from the `Android Extras` section using the Android SDK manager (run `android`).
+
+    You need to add the following line to the `local.properties`:
+
+    android.library.reference.1=PATH_TO_ANDROID_SDK/sdk/extras/google/google_play_services/libproject/google-play-services_lib
+    </info>
+
+## _hook_ Element
+
+Represents your custom script which will be called by Cordova when
+certain action occurs (for example, after plugin is added or platform
+prepare logic is invoked). This is useful when you need to extend
+default Cordova functionality. See Hooks Guide for more information.
+
+    <hook type="after_plugin_install" src="scripts/afterPluginInstall.js" />
+
+## Variables
+
+In certain cases, a plugin may need to make configuration changes
+dependent on the target application. For example, to register for C2DM
+on Android, an app whose package id is `com.alunny.message` would
+require a permission such as:
+
+    <uses-permission android:name="com.alunny.message.permission.C2D_MESSAGE"/>
+
+In such cases where the content inserted from the `plugin.xml` file is
+not known ahead of time, variables can be indicated by a dollar-sign
+followed by a series of capital letters, digits, or underscores. For
+the above example, the `plugin.xml` file would include this tag:
+
+    <uses-permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE"/>
+
+plugman replaces variable references with the specified value, or the
+empty string if not found. The value of the variable reference may be
+detected (in this case, from the `AndroidManifest.xml` file) or
+specified by the user of the tool; the exact process is dependent on
+the particular tool.
+
+plugman can request users to specify a plugin's required
+variables. For example, API keys for C2M and Google Maps can be
+specified as a command-line argument:
+
+    plugman --platform android --project /path/to/project --plugin name|git-url|path --variable API_KEY=!@CFATGWE%^WGSFDGSDFW$%^#$%YTHGsdfhsfhyer56734
+
+To make the variable mandatory, the `<platform>` tag needs to contain
+a `<preference>` tag. For example:
+
+    <preference name="API_KEY" />
+
+plugman checks that these required preferences are passed in.  If not,
+it should warn the user how to pass the variable in and exit with a
+non-zero code.
+
+Certain variable names should be reserved, as listed below.
+
+## $PACKAGE_NAME
+
+The reverse-domain style unique identifier for the package,
+corresponding to the `CFBundleIdentifier` on iOS or the `package`
+attribute of the top-level `manifest` element in an
+`AndroidManifest.xml` file.