Understanding Security in Windows Phone 7 Platform


Unlike the Windows Mobile development platform, the new Windows Phone platform from Microsoft is completely different from its predecessor. Application developers targeting Windows Phone platform should be aware of the security model surrounding the platform so that they can develop applications that fit the guidelines.

Security Model

Windows Phone employs a resource capability-driven model. An example of a resource capability can be GPS, camera, microphone, SMS or sensor for which privacy and security concerns exists.

By privacy and security concern, we mean that the user should be aware of the use of the above mentioned resources by the application and the user must consent to the use.

This control is necessary to avoid rogue applications from conducting malicious activity like transmitting user data, which can be used for malicious purposes.

All Windows Phone application projects declare the capabilities the application wants in the application manifest file called WMAppManifest.xml. This file can be located under the properties note of the Solution file.

Solution Explorer
Figure 1: Solution Explorer

By default, the WMAppManifest.xml looks as under

<?xml version="1.0" encoding="utf-8"?>

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
  <App xmlns="" ProductID="{d6527e1c-159b-49c4-9fb3-c75a5bff222f}" Title="WindowsPhoneSecurityDemo" RuntimeType="Silverlight" Version="" Genre="apps.normal" Author="WindowsPhoneSecurityDemo
author" Description="Sample description" Publisher="WindowsPhoneSecurityDemo">
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
      <Capability Name="ID_CAP_GAMERSERVICES"/>
      <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
      <Capability Name="ID_CAP_IDENTITY_USER"/>
      <Capability Name="ID_CAP_LOCATION"/>
      <Capability Name="ID_CAP_MEDIALIB"/>
      <Capability Name="ID_CAP_MICROPHONE"/>
      <Capability Name="ID_CAP_NETWORKING"/>
      <Capability Name="ID_CAP_PHONEDIALER"/>
      <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
      <Capability Name="ID_CAP_SENSORS"/>
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
      <DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/>
      <PrimaryToken TokenID="WindowsPhoneSecurityDemoToken" TaskName="_default">
          <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>

We can see that by default, any application declares the following capabilities.

Capability ID

Capability description


Access to Xbox live gamer services


Access to IMEI, Device phone number.


Access to user information


Access to user's location


Access to media library


Access to device microphone


Access to network services. This has to be disclosed since user can be charged if roaming


Access to the ability to place phone calls


Access to push notifications from internet service


Access to device sensors


Access to browsing components.

Since by default, all capabilities are declared, it can make an application less desirable when it is available in the Marketplace. So application developers need to remove the capabilities the application does not need.

If you do not declare a capability and use it in the application, the application will crash with UnauthorizedAccessException when attempting to use that capability.

Capability Detection Tool

The Windows Phone SDK (with January update) ships with a useful utility, which can look into the code and determine which capabilities are needed by the application, so that the application manifest file only needs to declare the needed capability and not every capability available.

The Capability tool is located at %ProgramFiles (x86)%\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect and is a file called CapabilityDetection.exe.

The syntax for the tool is

CapabilityDetection.exe Rules.xml PathtoXAPFile

The tool will list the capabilities the application needs and you can then update the projects's WMAppManifest.xml file to include only the tool listed capabilities.


In this article, we learned about the capability-driver security model of the Windows Phone platform. I hope you have found this information useful.

About the Author

Vipul Vipul Patel

Vipul Patel is a Software Engineer currently working at Microsoft Corporation, working in the Office Communications Group and has worked in the .NET team earlier in the Base Class libraries and the Debugging and Profiling team. He can be reached at vipul_d_patel@hotmail.com

Related Articles


  • Car Accessories

    Posted by tomorrowark on 06/14/2011 05:24am

    Online shopping for auto parts, Car Accessories, aftermarket car gadgets and LED light, free shipping for all orders. More information follow the link: http://www.tomtop.com/car-accessories

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Adaptation and evolution are fundamental requirements of survival -- not only in nature, but also in business. Our world has changed dramatically in a short amount of time. Many businesses are fueling and capitalizing on this change, while others are desperately clinging to a bygone era. Who is left standing in the years and decades ahead should come as no surprise. This edition of Unleashing IT highlights the companies that are embracing new circumstances, new methods, and new opportunities. By downloading …

  • As everyone scrambles to protect customers and consumers from the Heartbleed virus, there will be a variety of mitigating solutions offered up to address this pesky bug. There are a variety of points within the data path where solutions could be put into place to mitigate this (and similar) vulnerabilities and customers must choose the most strategic point in the network at which to deploy their selected mitigation. Read this white paper to learn the ins and outs of mitigating the risk of Heartbleed and the …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds