More control over your device its operating system
There are situations when you want to have control over your device in terms of operating system. In our case we have been building applications which have functionality depending on accuracy using WorldAnchors. We noticed that WorldAnchors are stable using the RS1 HoloLens device operating system version in combination with a specific Unity version which is used building the Mixed Reality app. As soon as we moved to a newer version of the operating system, WorldAnchors became less stable hence the application did not work properly.
Automatic updating
But the problem with a HoloLens development edition is that it updates automatically to a newer version (currently Microsoft has RS5 released) of the operating system. And you can’t do anything about. Yes, you could block specific update URLs in your network to have the device not being updated by Windows Update. But that is not recommended and gives also other problems.
Production apps require Commercial Suite edition
As many of you do, the HoloLens development edition is often used when a Mixed Reality project is started with the customer. But as soon as you go into production with your app, you will be needing a Commercial Suite edition. This is a recommendation by Microsoft. A Commercial Suite edition only differs in software from a Development edition. The hardware is exactly the same. It gives you a ton of extra software options, warranty and support from Microsoft. You can read here more about the differences.
Solution
Depending on your scenario you will need some or all of the steps below to achieve your goal.
Getting your device to the right operating system
You will need to execute this step first if you want to have your devices operating system at a specific version. In our case we want to have it to stay at RS1. The only way to accomplish this is flashing your device. For that you will need the Windows Device Recovery Tool and the image of the specific operating system. You can download the tool here. You can download the HoloLens Anniversary Update recovery package here.
Run the tool on your Windows 10 computer. Startup your HoloLens and connect it via the USB cable to that computer. It will be recognized by the tool.
Select your device. The model and current version of the operating system is shown in the tool. Select “Manual package selection” and browse the RS1 recovery page on disk.
Now select “Install software”. the tool will tell you that the version you are going to install is older. Select yes to install the package.
Keep in mind that flashing the device will remove everything from the HoloLens device and does a factory reset. Meaning it is like if it comes out of the box as when you bought it.
Upgrading to a Commercial Suite edition
If you downgraded your device to RS1 make sure that you do NOT execute the configuration flow of the device. Leave the device as it is for now.
It is possible to upgrade an existing Development edition to a Commercial Suite edition. You will need to create a provisioning package which needs to be added to the device. You also need to buy a upgrade license from Microsoft. They will provide you a XML file which you will need to apply.
There is some Microsoft documentation explaining about the provisioning package process. But there is a catch. I noticed if you follow the documentation it fails to add the provisioning package. I will explain below the best steps to get the package provisioned successfully.
To create a package you will need to use the Windows Configuration Designer Tool. The installation process is described here. If you are running Windows 10 like me (which i presume since you are developing for HoloLens) you can download it from the store.
Run the tool. There are some predefined templates present. Do NOT use the one for HoloLens. That one will cause issues and does not allow to define a lot of custom specifications. Select the “Advanced provisioning” instead.
Enter a name and select a folder. When you create the package it will use the folder to store all necessary files. It needs to be a folder. Selecting for example the root or the desktop as output will not work. Click Next to continue.
To apply the new Commercial Suite license file you got from Microsoft requires to set the EditionUpgrade > UpgradeEditionWithLicense. Browse for the xml file and make sure it is added to the selected customizations at the right column of the tool.
Apply policies to prevent updating
If you also wish to add policies for preventing the update mechanism on the HoloLens device you will need to add the following customizations.
Set the policy Policies > Update > AllowAutoUpdate to “Turn off automatic updates” and the policy Policies > Update > AllowMUUpdateService to “No”. In our case since we are setting the policies for a RS1 version we will not see the policies being reflected in the settings screen later on.
Create the provisioning package
When you have finished all your changes to in the Windows Configuration Designer tool it is time to create the provisioning package. Click on the menu item Export > Provisioning package to create it.
Fill in a name and leave all other settings to their defaults. Press the Next button to continue.
Do not change any of the security settings. The package will fail if you select encryption for the package. Press the Next button to continue.
Finally leave the location as specified and press the Next button the generate the provisioning package.
After the package is generated you will find a set of files generated by the tool. The Upgrade-Policies.ppkg is the actual provisioning package which is needed to apply to the HoloLens device.
Apply the provisioning package
The final step is applying the provisioning package to the HoloLens. There are two ways of adding the package to the device. If you are running a RS5 version you will be able to add them via the settings windows on the device. The second method allows you to add the package before the device is configured.
Important! The downside of the second method is that the device need to flashed or needs a factory reset. Both will remove the upgrade license to Commercial Suite edition. Meaning you have to include the license again in the provisioning package.
In our case we need the second method since that is the only way for a RS1 version.
You will need to do the following:
- Make sure the device is not configured yet
- Connect the device via the USB cable
- Start up the device and wait for the blue square which is used to position the HoloLens correctly on your head
- Press the power button (on the back) and the volume button down (at the right and close to the back of the head) together once
- Wait for the device to be recognized
- Open file explorer and browse to the root of the device
- Copy the provisioning package file in the root of the device
- Press again the power button and the volume button down together once
- Now you will get a message asking “Is this package from a source you trust?”
- Select “Yes add it”
If everything went well you will see a message telling you that the provisioning succeeded. Press the Continue button to go into the configuration of the device. Finish it till you get the start menu.
Check if upgrade is executed
You will need to go into the settings window of the device to check if the upgrade to Commercial Suite edition has succeeded. If it contains VPN Connection functionality under network you can be sure it has worked. In case of a RS1 version that will be the only way to check if it worked.