7850 Metro, Part Deux: How to Break the Start Button

Discuss Windows Vista/Server 2008 to Windows 10.
Post Reply
winnt32
Permanently Banned
Posts: 158
Joined: Thu Mar 02, 2017 2:40 pm

7850 Metro, Part Deux: How to Break the Start Button

Post by winnt32 »

You may recall my post talking about 7850 metro. Well, with a patched version of Redlock, you can successfully fail at getting it to do things. And yes, a few people have already done this (not sure about the ImmersiveBrowser stuff though), but it hasn't been posted about on BA.

So, if you have Redlock, it's as simple as changing a check for build 7898 to either only not allow shsxs on above 7898 or change it to allow shsxs on 7850 - say only block shsxs on 7849 or below. I did the latter, but the former is just as good.

After you do this, Windows boots up as normal with 7850 registry tweaks - you get the webcam, glcnd, etc. You also have new folder icons in explorer with redlock which come from SHSXS. However, the major thing to happen here is that the start menu has ceased functioning. Unfortunate, isn't it?

This is mostly due to incompatibilities between what 7850 wants for the start screen (in a very early state in this build) and what Redlock's SHSXS has.

However, using Regmon, some interesting things are found. With an 8102 SHSXS, Explorer would set SHSXSWasEnabled to 0 and continue on its merry way. With Redlock, it doesn't, and continues to try to start Metro - in fact, it tries to read registry keys for Immersive Browser:

First, Explorer tries to read the reg key HKLM\SOFTWARE\Microsoft\Immersive Browser\Capabilities.

If this key exists, it then reads:
The key HKLM\SOFTWARE\Microsoft\Immersive Browser\Capabilities\FileAssociations
The value HKLM\SOFTWARE\Microsoft\Immersive Browser\Capabilities\Hidden

If fileassociations exists, it enumerates the values.

CSRSS also looks for a file called shsxs.dll.2.Config - placing this file, empty, in system32 breaks metro initalisation. This is because reverse engineering is required to figure out what CSRSS wants in this file.

Also the charm bar strings are in twinui.dll.mui, so that's neat.

It's possible that Metro is actually successfully initalising, but the start screen and charm bar break due to incompatibility in functions.

Post Reply