Open Eggbert

Windows Phone

Windows Phone
Developer Microsoft Mobile
Written in C, C++, Assembly Language, C#
OS family Microsoft Windows
Current status Discontinued
Source model Closed-source
Windows Phone (WP) is a discontinued mobile operating system developed by Microsoft for smartphone s as the replacement to Windows Mobile and Zune.
The user interface of WP is derived from the Metro design language.
WP is primary aimed at the consumer market rather than the enterprise market.

History

Origin

The project "Photon" (codename) started In 2004, which was a big update of Windows Mobile. But its progress was slow and it was ultimately cancelled.
In 2008 Microsoft reorganized the Windows Mobile group and started work on a new mobile operating system. WP was developed quickly.

Windows Phone 7

Windows Phone 7 was launched in October 2010.
Its kernel is Windows CE-based.
The XAP file for the Speedy Blupi game is intended for Windows Phone 7 or newer and it should run on Windows Phone 7
At least 512 MB of RAM is required for devices to run Windows Phone 7 ''(in 2012, the Tango update lowered this requirement to 256 MB of RAM)''.
Windows Phone 7.5 (internally identified as version 7.1) was released in 2011.
In 2012, a minor update known as Tango was released. This minor update contained some bug fixes, but also lowered the hardware requirements to allow run this OS on devices with 800 MHz CPUs and 256 MB of RAM.
Windows Phone 7.8 was released in 2013. This update is the final major release of Windows Phone 7 and mainly brings the user interface improvements backported from Windows Phone 8, as existing Windows Phone 7 devices cannot be upgraded to Windows Phone 8 because Windows Phone 8 introduced major changes to the system’s architecture and hardware requirements, making them incompatible with the older devices. This difference also impacts app compatibility, so a Windows Phone 8 XAP will not run on Windows Phone 7 devices.

Windows Phone 8

Windows Phone 8 was announced in 2012 and its kernel is Windows NT (the same as PC versions of Windows).
Due the changes, Windows Phone 8 was not compatible with all existing Windows Phone 7 devices.
Windows Phone 8.1 was released in 2014.
Speedy Blupi relationship: Speedy Blupi runs on Windows Phone 8.

Windows 10 Mobile

Windows 10 Mobile was announced in 2015.
Many Windows Phone 8.1 devices were able to be upgraded to Windows 10 Mobile.
Speedy Blupi relationship: Speedy Blupi runs on Windows 10 Mobile.
In 2017, the active development of Windows 10 Mobile was stopped. Windows 10 Mobile was declared the end of life on January 14, 2020.
The reason, why the Windows Phone platform is discontinued, is the diminishing interest and application development for this platform.

Windows Phone Store

Windows Phone Store was used to distribute: music, videos, podcasts, third-party applications and game.
Third-party applications and games for Windows Phone can be based on XNA or several another technologies (https://en.wikipedia.org/wiki/Windows_Phone). The used programming language can be one of: C#, Visual Basic.NET ,C++, HTML5/JavaScript
Windows Phone Store was killed and replaced by Windows Store in 2015.
On 16th December 2019, Microsoft killed the part of Windows Store for the Windows Phone support.
  • This means, that since that day no application can be installed on Windows Phone devices using Windows Store.
But it is still possible to install applications on Windows Phone devices even now (in 2024).
  • Use "Windows Phone Internals". This tool is created by a hacker and is used to unlock the bootloader of WP and root the device. You need a XAP file, than you can install this XAP file (application) on the given Windows Phone
  • https://github.com/ReneLergner/WPinternals

How to take a screenshot of a Windows Phone

Taking screenshot is easy. Press simultaneouly the power key and volume up.

How to record screen and create video of a Windows Phone

Requirements: Feature "Project My Screen" must be available on the Windows Phone. This feature is available since Windows Phone 8.1, under settings.
Steps:
  1. Download and install the applicaton "Project My Screen" on the Windows PC. http://www.microsoft.com/en-us/download/details.aspx?id=42536
  2. Run "Project My Screen on the Windows PC
  3. Connect Windows Phone device to Windows PC via a USB cable
  4. Confirm the question displayed on the Windows Phone device: Select yes.
  5. Finished. Now you see the scren of your Windows Phone on your Windows PC
  6. Record the screen. Use an app like CamStudio or an alternative.

Emulators

There are 3 emulators for:
  • Windows Phone 7/7.1
  • Windows Phone 8/8.1
  • Windows Mobile 10

How to upgrade Windows Phone from 8.1 to 10 (even in 2025)

https://github.com/fadilfadz01/Universal_Updater_UWP

How to have a Windows Phone device functioning as long as possible

How many devices to buy?

  1. Multiple devices: It is recommended to purchase at least 3–5 devices of the same type. This ensures spare parts and backups in case of failure.
  2. Functional state: Buy devices in good condition and test them immediately after purchase.

How to archive devices?

Remove batteries

  • Removing the battery prevents the risk of electrolyte leakage and damage to the device. Store batteries separately in a dry and cool environment.

Protection against moisture

  • Use vacuum sealing or resealable plastic bags with desiccants (e.g., silica gel) to protect against moisture.
  • Store devices in a dry environment with a stable temperature, ideally around 20 °C, and humidity below 50%.

Regular inspection

  • Every 5–10 years, test the devices and repackage them to minimize material degradation.

Battery health

How much charge should a phone battery have for long-term storage?

Even when a phone is completely turned off, its battery will slowly discharge over time due to chemical processes. This is known as self-discharge.

How much does the battery discharge over time?

  • Powered off phone: Self-discharge is typically around 1–3% per month, depending on the battery quality and storage conditions.
  • Phone in airplane mode (powered on): May discharge slightly faster, about 3–5% per month.

Tips to minimize self-discharge

  1. Check the battery every 6–12 months. Recharge to 40–60% if it drops below this range during storage.
  2. # Store in optimal conditions:
    • Keep the phone in a cool, dry place. Lower temperatures (but above 0°C/32°F) reduce self-discharge rates.

What happens if the battery discharges completely?

If the battery discharges below a critical voltage (typically 2.5–3V per cell), the battery’s protective circuitry may permanently disable it, causing irreversible damage.

Recommendations

If the phone is currently at 74%, let it discharge to around 50% before storing it. Plan to check its status after 6 months to ensure the battery hasn’t discharged too far.


Note: For long-term storage, maintaining a charge level of 40–60% is optimal for minimizing chemical degradation and prolonging battery life.

Will the devices work in 30 years?

  • SSD and NAND flash: Storage in Windows Phone devices will likely lose data after 30 years if not powered on regularly. Flash memory is susceptible to "bit rot" (loss of charge in cells).
    • Solutions:
      • Power on the devices and check data integrity every 5 years.
      • Back up data to modern storage media and keep copies of the game outside the devices (e.g., in the cloud or on a NAS).

Additional recommendations

  • Emulation: Maintain or create emulators for Windows Phone to ensure the game remains playable even if the hardware fails.
  • Documentation: Record detailed instructions on how to use the devices and back up all firmware.

Windows Phone Internals

Windows Phone Internals is an open-source tool created by a hacker (XDA user) who goes by the name Heathcliff, that performs tasks like unlocking bootloader, enabling root access, and flash or backup firmware.
Heathcliff released the first version after few months of working on it.
Many Lumia phones are supported.
But be careful, this tool is intended only for experienced users and can cause the phone to become unusable permanently.
Github repository: https://github.com/ReneLergner/WPinternals
Official website (dead now): http://www.wpinternals.net/

Windows Device Recovery Tool

Windows Device Recovery Tool is a proprietary tool developed by Microsoft used to recover firmware of Windows devices, it runs natively on Windows.
As of November 2024, it seems, that the this tool dropped the support for Windows Phone devices.
Note: In July 2024 this tool was working for Windows Phone devices.

XAP

XAP is the file format for:

  1. mobile apps for the Windows Phone operating system
  2. Silverlight web apps

Since the relase of Windows Phone 8.1 XAP was replaced by the the APPX file format used to install WinRT apps on the Windows Phone Support.

A XAP file is a ZIP file, but which has the xap file extension (not zip).

The MIME type for XAP files is: appilcation/x-silverlight-app.

Microsoft later enabled the possibility to encrypt the XAP file. A standard ZIP extractor does not work for encrypted XAP files.

  • Fortunately, the XAP file of Speedy Blupi is not encrypted and can be opened as a standard ZIP file.

Content of a XAP file

  • AppManifest.xaml file
  • DLLs, which are required
  • Application / Game resources (images and others)

How to determine the Windows Phone version for which an XAP file was created

You can inspect the contents of the XAP, specifically its WMAppManifest.xml file. This file contains metadata about the app, including the target Windows Phone OS version. Follow these steps:


Step 1: Extract the XAP File

  1. Rename the XAP file:
    • Change the file extension from .xap to .zip.
  2. Extract the ZIP file:
    • Use a tool like 7-Zip, WinRAR, or any other archive extractor.

Step 2: Locate the WMAppManifest.xml File

  1. Navigate to the extracted folder.
  2. Look for the file named WMAppManifest.xml. It's typically located in the root of the XAP or under a folder like App.

Step 3: Inspect the WMAppManifest.xml File

  1. Open the WMAppManifest.xml file in a text editor (e.g., Notepad++ or VS Code).
  2. Look for the value of the attribute AppPlatformVersion of the tag deployment.

Step 4: Interpret the Version

  • Common version numbers:
    • 7.1: Windows Phone 7.5.
    • 8.0: Windows Phone 8.0.
    • 8.1: Windows Phone 8.1.

Regarding Speedy Blupi for Windows Phone, that AppPlatformVersion is 7.1, which means, that Speedy Blupi target Windows Phone 7.5 or newer devices.

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">

External links

"Why The Windows Phone Failed" https://www.youtube.com/watch?v=SNEF1ujd2Mc

Windows Phone namespaces

Microsoft.Devices.Sensors

Microsoft.Devices.Sensors is a namespace in the Windows Phone platform that provides an API for accessing device sensors. This namespace was primarily designed for developing applications for the Windows Phone 7.x and 8.x operating systems.

Functions of Microsoft.Devices.Sensors

The API allows developers to access various sensors on a mobile device, such as:

  1. Accelerometer:
    • Measures the acceleration of the device along all three axes (X, Y, Z).
    • Can be used for detecting device orientation, motion gestures, or game development.
  2. Gyroscope:
    • Measures angular velocity (device rotation around the X, Y, and Z axes).
    • Used for more precise rotation detection, such as in navigation or gaming.
  3. Compass (Magnetometer):
    • Detects the Earth's magnetic field and can determine the device's direction relative to the north.
    • Used in map creation or augmented reality (AR) applications.
  4. Acceleration and Motion Data:
    • A combination of sensors providing complex data on device movement and orientation.

Code Example: Accelerometer

using Microsoft.Devices.Sensors;
using System;

namespace SensorExample
{
    public class AccelerometerExample
    {
        private Accelerometer accelerometer;

        public AccelerometerExample()
        {
            accelerometer = new Accelerometer();
            accelerometer.CurrentValueChanged += Accelerometer_CurrentValueChanged;
            accelerometer.Start();
        }

        private void Accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
        {
            var acceleration = e.SensorReading.Acceleration;
            Console.WriteLine($"X: {acceleration.X}, Y: {acceleration.Y}, Z: {acceleration.Z}");
        }
    }
}

Status as of 2025

This namespace and its API are deprecated and were used only for Windows Phone applications. With the end of support for Windows Phone (in 2017), the use of this namespace is limited. Modern mobile application development now focuses on other platforms, such as Xamarin, .NET MAUI, or native app development for iOS and Android, where similar APIs are available.

For newer development, it is recommended to use current frameworks and libraries that provide support for working with sensors on modern devices.


Microsoft.Phone.Controls

Provides controls specific to Windows Phone, such as:

  • Pivot: A control for horizontal navigation between different panels.
  • Panorama: A control that enables smooth transitions between larger sections.
  • WebBrowser: Hosting web pages within the app.

Microsoft.Phone.Tasks

Used to perform integrated system tasks, such as:

  • EmailComposeTask: Opens the interface for sending an email.
  • SmsComposeTask: Opens the interface for sending an SMS.
  • PhoneCallTask: Initiates a call to a specific phone number.
  • PhotoChooserTask: Allows the user to select a photo from the gallery.

Microsoft.Phone.Shell

Provides access to user interface features, such as:

  • Tile: Dynamic tiles on the start screen.
  • ToastNotification: Sending brief notifications to the user.

Microsoft.Xna.Framework

Used for games and graphic applications. Contains classes for working with:

  • Graphics: Graphic rendering.
  • Audio: Playing sounds and music.
  • Input: Handling user inputs.

See: XNA namespaces


Microsoft.Phone.Info

Provides device information, such as:

  • DeviceStatus: Information about memory, device model, battery status, etc.
  • UserExtendedProperties: Getting information about the user.

Microsoft.Devices

Works with device hardware, including:

  • Camera: Using the device's camera.
  • VibrateController: Controlling the device's vibration.

Microsoft.Phone.Media

Used for working with multimedia:

  • AudioPlayer: Playing background music.
  • VideoPlayer: Playing videos.

Microsoft.Phone.Reactive

Provides a subset of reactive programming (Reactive Extensions) for asynchronous operations in applications.


System.Device.Location

Works with geolocation:

  • GeoCoordinateWatcher: Gets the current location of the device.
  • GeoCoordinate: Storing coordinates (latitude and longitude).

Microsoft.Phone.Maps.Controls

Used to implement map features:

  • Map: Displaying an interactive map.
  • MapLayer: Working with layers on the map.

Microsoft.Advertising.Mobile.UI

Used for integrating ads into apps through the Microsoft Advertising SDK.


System.Windows.Controls

Contains basic controls for the user interface, such as:

  • Button: A button.
  • TextBox: A text box.
  • ListBox: A list of items.

System.Windows.Media

API for working with multimedia, such as graphics, animations, and sound.


Microsoft.Phone.Notification

Used for working with Push Notification Services (PNS) for real-time notifications.


System.IO.IsolatedStorage

Used to store application data locally on the device. It contains classes for working with Isolated Storage, which is a sandboxed area for the app.

If you are working with Windows Phone, it is recommended to consult the documentation for the specific SDK version, as some namespaces and APIs were only available in certain versions.