Windows Mobile 6.5 Widget Manifest Permissions
Windows Mobile 6.5 introduced support for installable web widgets
built on web standards using the W3C Widgets specification. Security and
permission models for these widgets were governed entirely by the
widget's packaging and its configuration document, the
config.xml manifest file. This article outlines the
specific XML elements, security attributes, and signing requirements
that dictated how a Windows Mobile 6.5 web widget gained network access
and system privileges.
The Configuration Manifest: config.xml
Every Windows Mobile 6.5 widget required a config.xml
file located at the root of the .wgt archive. This document
used the W3C Widget 1.0 namespace
(http://www.w3.org/ns/widgets) to establish metadata,
runtime behaviors, and access parameters. Without a valid
config.xml, Windows Mobile 6.5 treated the package as
invalid and refused installation.
Network Permissions: The
<access> Element
By default, the Windows Mobile 6.5 widget runtime restricted external
network communication to protect the user from unauthorized data
transmission. To communicate with external servers, developers had to
explicitly define outbound connectivity rules using the
<access> element.
- Network Activation: To grant a widget network
communication privileges, the manifest included the
<access>tag with specific URI targets. - Domain Whitelisting: Using the
subdomainsattribute, developers could restrict access to exact hostnames or broaden access across an entire domain structure. For example:<access origin="http://example.com" subdomains="true" /> - Full Network Access: Wildcard access
(
origin="*") allowed unrestricted HTTP and HTTPS traffic, but this required appropriate security capabilities depending on device security policies.
Hardware and
API Permissions: The <feature> Element
Access to native device components, underlying mobile services, and
specialized Microsoft APIs required the <feature>
element inside config.xml.
- Feature Identification: Each capability was
identified by a unique URI via the
nameattribute. - Requirement Flag: The
requiredattribute specified whether the widget could function without the requested capability:If<feature name="http://api.example.org/device/system" required="true" />required="true"was set and the host device could not grant the permission due to security policies or hardware limitations, the widget would fail to install or initialize.
Digital Signatures and Security Roles
The manifest alone was not always sufficient to unlock sensitive
privileges. Windows Mobile 6.5 enforced a multi-tiered security model
where permissions declared in config.xml interacted
directly with code signing:
- Unsigned Widgets: Ran in the most restricted sandbox. Even if the manifest requested privileged features or broad network access, the operating system blocked capabilities that could affect system integrity or personal data.
- Signed Widgets: Widgets signed with an Authenticode
certificate recognized by the device's certificate store could access
privileged APIs declared via
<feature>and unrestricted network endpoints declared via<access>.
Security policy managers on Windows Mobile 6.5 cross-referenced the
declarations in config.xml with the certificate's trust
level (such as Privileged vs. Unprivileged certificates) at installation
time, presenting users with permission prompts or silently rejecting
installation if the declared permissions exceeded the signature's
authorization.