Code update

- WPinternals is now a .NET Core 3.0 application
- Implemented new unlock process for Spec A devices
- Updated logic for unlocking Spec B devices
- Implemented MMOS support for Spec B devices
- Implemented battery status in Flash Mode
- Implemented Fuse configuration information in Flash Mode
- Implemented Reboot from mass storage for Spec A and some Spec B devices
- Implemented shutdown from flash mode (preliminary)
- Fixed label mode support for Spec B
This commit is contained in:
Gus
2019-07-26 17:15:20 +02:00
parent b062efab52
commit 5dae1da560
58 changed files with 5522 additions and 66864 deletions
+20
View File
@@ -100,6 +100,26 @@ DEALINGS IN THE SOFTWARE.
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
<local:FilePicker SelectionText="Optionally select an FFU-image or raw image with an Engineering SBL3 partition..." AllowNull="True" Path="{Binding SBL3Path, Mode=TwoWay}" HorizontalAlignment="Stretch"/>
<StackPanel Visibility="{Binding Path=IsSupportedFfuNeeded, Converter={StaticResource VisibilityConverter}}">
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" VerticalScrollBarVisibility="Auto" >
<FlowDocument Loaded="Document_Loaded" FontFamily="Segoe UI" FontSize="12" PagePadding="1">
<local:Paragraph TextAlignment="Left">
<LineBreak />
<Run Text="The FFU-image you selected does not have a supported OS-version. Windows Phone Internals needs to extract files from a supported OS-version. You need to select such donor-FFU. If necessary, you can select an FFU-image for a different model." />
<LineBreak />
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
<local:FilePicker SelectionText="Select an FFU-image with supported OS-version..." AllowNull="False" Path="{Binding SupportedFFUPath, Mode=TwoWay}" HorizontalAlignment="Stretch"/>
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" VerticalScrollBarVisibility="Auto" Visibility="{Binding Path=IsSupportedFfuValid, Converter={StaticResource InverseVisibilityConverter}}">
<FlowDocument Loaded="Document_Loaded" FontFamily="Segoe UI" FontSize="12" PagePadding="1" FontWeight="Bold" Foreground="Red">
<local:Paragraph TextAlignment="Left">
<LineBreak />
<Run Text="The OS version of the selected FFU is not supported. Select a donor-FFU with a supported OS version." />
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
</StackPanel>
</StackPanel>
<StackPanel Visibility="{Binding Path=TargetHasNewFlashProtocol, Converter={StaticResource VisibilityConverter}}">
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" VerticalScrollBarVisibility="Auto" >
+35 -1
View File
@@ -110,7 +110,7 @@ DEALINGS IN THE SOFTWARE.
</StackPanel>
</StackPanel>
</Border>
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0,0,0,0">
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0,0,0,20">
<StackPanel>
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0,20,0" VerticalScrollBarVisibility="Auto" >
<FlowDocument FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" TextAlignment="Left">
@@ -156,5 +156,39 @@ DEALINGS IN THE SOFTWARE.
</StackPanel>
</StackPanel>
</Border>
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0,0,0,0">
<StackPanel>
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0,20,0" VerticalScrollBarVisibility="Auto" >
<FlowDocument FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" TextAlignment="Left">
<FlowDocument.Resources>
<!-- This style is used to set the margins for all paragraphs in the FlowDocument to 0. -->
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
<Style TargetType="{x:Type Section}">
<Setter Property="Margin" Value="0"/>
</Style>
</FlowDocument.Resources>
<local:Paragraph>
<Run Text="Flash MMOS" FontSize="18" FontWeight="Bold" Foreground="#FF3753A6" />
<LineBreak />
<LineBreak />
<Run Text="To flash a MMOS image (secwim), your phone will be switched to FFULoader mode."/>
<LineBreak />
<LineBreak />
<local:FilePicker Caption="SecWim: " SelectionText="Select the source-file to flash to the MMOS image..." Path="{Binding MMOSPath, Mode=TwoWay}" AllowNull="True" DefaultFileName="MMOS.secwim" HorizontalAlignment="Stretch" PathChanged="FilePicker_PathChanged"/>
<LineBreak />
<LineBreak />
<local:CollapsibleRun Text="You have to connect your phone before you can continue." IsVisible="{Binding IsPhoneDisconnected, Mode=OneWay}"/>
<local:CollapsibleRun Text="When you continue, the phone will be switched to Flash mode and then the selected MMOS image will be flashed." IsVisible="{Binding IsPhoneInOtherMode, Mode=OneWay}"/>
<local:CollapsibleRun Text="The phone is in Flash mode. You can continue to flash MMOS." IsVisible="{Binding IsPhoneInFlashMode, Mode=OneWay}"/>
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
<StackPanel Orientation="Horizontal" Width="Auto" Height="Auto" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,10,40,25">
<Button Command="{Binding Path=FlashMMOSCommand, Mode=OneWay}" Content="Flash MMOS" Width="120" Height="Auto" Padding="0,5" />
</StackPanel>
</StackPanel>
</Border>
</StackPanel>
</UserControl>
+118 -5
View File
@@ -55,6 +55,7 @@ DEALINGS IN THE SOFTWARE.
<RowDefinition Height="*"/>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Platform name" />
<TextBlock Grid.Row="0" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding PlatformName, Mode=OneWay}" />
@@ -64,10 +65,12 @@ DEALINGS IN THE SOFTWARE.
<TextBlock Grid.Row="2" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding ProductType}" Visibility="{Binding Path=ProductType, Converter={StaticResource ObjectToVisibilityConverter}}"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Product Code" Visibility="{Binding Path=ProductCode, Converter={StaticResource ObjectToVisibilityConverter}}"/>
<TextBlock Grid.Row="3" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding ProductCode}" Visibility="{Binding Path=ProductCode, Converter={StaticResource ObjectToVisibilityConverter}}"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="Storage" />
<TextBlock Grid.Row="4" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding eMMC}"/>
<TextBlock Grid.Row="5" Grid.Column="0" Text="Bootloader" />
<TextBlock Grid.Row="5" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding BootloaderDescription}"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="Charging status" />
<TextBlock Grid.Row="4" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding ChargingStatus}"/>
<TextBlock Grid.Row="5" Grid.Column="0" Text="Storage" />
<TextBlock Grid.Row="5" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding eMMC}"/>
<TextBlock Grid.Row="6" Grid.Column="0" Text="Bootloader" />
<TextBlock Grid.Row="6" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" Text="{Binding BootloaderDescription}"/>
</Grid>
</local:Paragraph>
</FlowDocument>
@@ -195,7 +198,7 @@ DEALINGS IN THE SOFTWARE.
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
</Border>
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Padding="25" >
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Padding="25" Margin="0,0,0,20" >
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0" VerticalScrollBarVisibility="Auto" >
<FlowDocument FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" PagePadding="1">
<local:Paragraph TextAlignment="Left">
@@ -223,5 +226,115 @@ DEALINGS IN THE SOFTWARE.
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
</Border>
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Padding="25" >
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0" VerticalScrollBarVisibility="Auto" >
<FlowDocument FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" PagePadding="1">
<local:Paragraph TextAlignment="Left">
<Run Text="Fuse Security" FontSize="18" FontWeight="Bold" Foreground="#FF3753A6" />
<LineBreak />
<LineBreak />
<Run Text="Different fuses control different security feature's states. If one of those flags is green, the feature bound to the corresponding fuse will be enabled." />
<LineBreak />
<Run Text="Some fuses are detailed below:" />
<LineBreak />
<LineBreak />
<Bold>SECURE_BOOT (Platform Secure Boot)</Bold>
<LineBreak />
- Manages Secure Boot status for entire boot chain.
<LineBreak />
- Phones with this fuse unblown can have their bootloader partitions replaced.
<LineBreak />
- Spec A phones can have some of their partitions replaced when unlocked without this fuse unblown.
<LineBreak />
<LineBreak />
<Bold>FFU_VERIFY (Secure FFU)</Bold>
<LineBreak />
- If unblown, the phone allows non secure sync flashing.
<LineBreak />
- If unblown, the phone also allows skipping security checks when flashing.
<LineBreak />
<LineBreak />
<Bold>PRODUCTION_DONE</Bold>
<LineBreak />
- Indicates if the phone passed the production phase of manufacturing.
<LineBreak />
<LineBreak />
<Bold>FAST_BOOT</Bold>
<LineBreak />
- If unblown, UEFI allows booting from the SD card first, if programmed to do so.
<LineBreak />
<LineBreak />
<Grid IsHitTestVisible="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="SECURE_BOOT" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSecureBootStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSecureBootStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="FFU_VERIFY" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigFfuVerifyStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigFfuVerifyStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="JTAG" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigJtagStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigJtagStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="SHK" />
<TextBlock Grid.Row="3" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigShkStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="3" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigShkStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="SIMLOCK" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSimlockStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSimlockStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="5" Grid.Column="0" Text="PRODUCTION_DONE" />
<TextBlock Grid.Row="5" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigProductionDoneStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="5" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigProductionDoneStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="6" Grid.Column="0" Text="RKH" />
<TextBlock Grid.Row="6" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigRkhStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="6" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigRkhStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="7" Grid.Column="0" Text="PUBLIC_ID" />
<TextBlock Grid.Row="7" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigPublicIdStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="7" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigPublicIdStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="8" Grid.Column="0" Text="DAK" />
<TextBlock Grid.Row="8" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigDakStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="8" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigDakStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="9" Grid.Column="0" Text="SEC_GEN" />
<TextBlock Grid.Row="9" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSecGenStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="9" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSecGenStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="10" Grid.Column="0" Text="OEM_ID" />
<TextBlock Grid.Row="10" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigOemIdStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="10" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigOemIdStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="11" Grid.Column="0" Text="FAST_BOOT" />
<TextBlock Grid.Row="11" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigFastBootStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="11" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigFastBootStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="12" Grid.Column="0" Text="SPDM_SEC_MODE" />
<TextBlock Grid.Row="12" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSpdmSecModeStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="12" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSpdmSecModeStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="13" Grid.Column="0" Text="RPM_WDOG" />
<TextBlock Grid.Row="13" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigRpmWdogStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="13" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigRpmWdogStatus, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="14" Grid.Column="0" Text="SSM" />
<TextBlock Grid.Row="14" Grid.Column="1" Text="Not blown" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSsmStatus, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="14" Grid.Column="1" Text="Blown" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=FinalConfigSsmStatus, Converter={StaticResource VisibilityConverter}}"/>
</Grid>
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
</Border>
</StackPanel>
</UserControl>
+1 -1
View File
@@ -34,7 +34,7 @@ DEALINGS IN THE SOFTWARE.
<local:BooleanConverter x:Key="VisibilityConverter" OnTrue="Visible" OnFalse="Collapsed" OnNull="Collapsed"/>
<local:BooleanConverter x:Key="InverseVisibilityConverter" OnTrue="Collapsed" OnFalse="Visible" OnNull="Collapsed" />
</UserControl.Resources>
<StackPanel>
<StackPanel VerticalAlignment="Center">
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Padding="25" Margin="0,0,0,20">
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0" VerticalScrollBarVisibility="Auto" >
<FlowDocument FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" PagePadding="1">
+5
View File
@@ -70,6 +70,11 @@ DEALINGS IN THE SOFTWARE.
<local:CollapsibleRun IsVisible="{Binding EffectiveBootloaderSecurityStatus, Converter={StaticResource InverseConverter}, Mode=OneWay}" Text="Your security flags indicate the this mode can be accessed. But this switch will only succeed if you took all measures to unlock Mass Storage mode." />
<LineBreak />
<LineBreak />
<Hyperlink NavigateUri="Shutdown">Shutdown the phone</Hyperlink>
<LineBreak />
<Run Text="This will shutdown your phone. After selecting this option, you'll need to unplug your phone from your computer." />
<LineBreak />
<LineBreak />
<Run Text="Warning 1: " Foreground="Red" FontWeight="Bold"/>
<Run Text="Once you've entered Mass Storage mode, be very careful with altering files. You can easily brick your phone, when you make invalid changes to the file-system of the phone." />
<LineBreak />
+60 -23
View File
@@ -34,28 +34,65 @@ DEALINGS IN THE SOFTWARE.
<local:BooleanConverter x:Key="InverseConverter" OnTrue="False" OnFalse="True" />
</UserControl.Resources>
<Border BorderThickness="1" BorderBrush="#FFD4D4D4" HorizontalAlignment="Stretch" VerticalAlignment="Center" Padding="25">
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0,0,0" VerticalScrollBarVisibility="Auto" >
<FlowDocument x:Name="Document" FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" TextAlignment="Left">
<FlowDocument.Resources>
<!-- This style is used to set the margins for all paragraphs in the FlowDocument to 0. -->
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
<Style TargetType="{x:Type Section}">
<Setter Property="Margin" Value="0"/>
</Style>
</FlowDocument.Resources>
<local:Paragraph>
<Run Text="Nokia Lumia - Switch mode" FontSize="18" FontWeight="Bold" Foreground="#FF3753A6" />
<LineBreak />
<LineBreak />
<Run Text="Current mode: " />
<Run Text="Mass Storage" Foreground="#FF3753A6" FontWeight="Bold" />
<LineBreak />
<LineBreak />
<Run Text="Currently it is not possible to switch from Mass Storage mode to another mode. You can press and hold the power-button and volume-down to soft-reset the phone. You will then boot to Windows Phone OS." />
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
<Grid>
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0,0,0" VerticalScrollBarVisibility="Auto" Visibility="{Binding Path=SupportsReboot, Converter={StaticResource InvisibilityConverter}}" >
<FlowDocument x:Name="Document" FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" TextAlignment="Left">
<FlowDocument.Resources>
<!-- This style is used to set the margins for all paragraphs in the FlowDocument to 0. -->
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
<Style TargetType="{x:Type Section}">
<Setter Property="Margin" Value="0"/>
</Style>
</FlowDocument.Resources>
<local:Paragraph>
<Run Text="Nokia Lumia - Switch mode" FontSize="18" FontWeight="Bold" Foreground="#FF3753A6" />
<LineBreak />
<LineBreak />
<Run Text="Current mode: " />
<Run Text="Mass Storage" Foreground="#FF3753A6" FontWeight="Bold" />
<LineBreak />
<LineBreak />
<Run Text="Currently it is not possible to switch from Mass Storage mode to another mode. You can press and hold the power-button and volume-down to soft-reset the phone. You will then boot to Windows Phone OS." />
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
<local:FlowDocumentScrollViewerNoMouseWheel Grid.Column="1" Margin="20,0,0,0" VerticalScrollBarVisibility="Auto" Visibility="{Binding Path=SupportsReboot, Converter={StaticResource VisibilityConverter}}" >
<FlowDocument x:Name="Document2" FontFamily="Segoe UI" FontSize="12" Loaded="Document_Loaded" TextAlignment="Left">
<FlowDocument.Resources>
<!-- This style is used to set the margins for all paragraphs in the FlowDocument to 0. -->
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
<Style TargetType="{x:Type Section}">
<Setter Property="Margin" Value="0"/>
</Style>
</FlowDocument.Resources>
<local:Paragraph>
<Run Text="Nokia Lumia - Switch mode" FontSize="18" FontWeight="Bold" Foreground="#FF3753A6" />
<LineBreak />
<LineBreak />
<Run Text="Current mode: " />
<Run Text="Mass Storage" Foreground="#FF3753A6" FontWeight="Bold" />
<LineBreak />
<LineBreak />
<Hyperlink NavigateUri="Normal">Switch to Normal-mode</Hyperlink>
<LineBreak />
<Run Text="This will switch back to Windows Phone OS." />
<LineBreak />
<LineBreak />
<Hyperlink NavigateUri="Label">Switch to Label-mode</Hyperlink>
<LineBreak />
<Run Text="This interface is meant for querying and provisioning the phone. This is normally used for configuring the phone during manufacturing." />
<LineBreak />
<LineBreak />
<Hyperlink NavigateUri="Flash">Switch to Flash-mode</Hyperlink>
<LineBreak />
<Run Text="This is the interface that can be used to flash a new ROM image. It can also be used to retrieve additional info and security status." />
</local:Paragraph>
</FlowDocument>
</local:FlowDocumentScrollViewerNoMouseWheel>
</Grid>
</Border>
</UserControl>
+1 -1
View File
@@ -39,7 +39,7 @@ namespace WPinternals
Hyperlink link = args.Source as Hyperlink;
if (link != null)
{
(this.DataContext as NokiaModeNormalViewModel).RebootTo(link.NavigateUri.ToString());
(this.DataContext as NokiaModeMassStorageViewModel).RebootTo(link.NavigateUri.ToString());
}
}
+33 -7
View File
@@ -53,6 +53,7 @@ DEALINGS IN THE SOFTWARE.
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Brand / model" />
<TextBlock Grid.Row="0" Grid.Column="1" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap">
@@ -70,6 +71,8 @@ DEALINGS IN THE SOFTWARE.
<TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding Path=Operator}" TextWrapping="Wrap" />
<TextBlock Grid.Row="4" Grid.Column="0" Text="Firmware version" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding Path=Firmware}" TextWrapping="Wrap" />
<TextBlock Grid.Row="5" Grid.Column="0" Text="Hardware version" />
<TextBlock Grid.Row="5" Grid.Column="1" Text="{Binding Path=HWID}" TextWrapping="Wrap" />
</Grid>
</local:Paragraph>
</FlowDocument>
@@ -91,15 +94,24 @@ DEALINGS IN THE SOFTWARE.
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="IMEI" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=IMEI}" TextWrapping="Wrap" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="Public Phone ID" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=PublicID, Converter={StaticResource HexConverter}, Mode=OneWay}" TextWrapping="Wrap" />
<TextBlock Grid.Row="2" Grid.Column="0" Text="WLAN MAC" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=WlanMac, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Bluetooth MAC" />
<TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding Path=BluetoothMac, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap" />
<TextBlock Grid.Row="2" Grid.Column="0" Text="WLAN MAC 1" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=WlanMac1, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="WLAN MAC 2" />
<TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding Path=WlanMac2, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="WLAN MAC 3" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding Path=WlanMac3, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap"/>
<TextBlock Grid.Row="5" Grid.Column="0" Text="WLAN MAC 4" />
<TextBlock Grid.Row="5" Grid.Column="1" Text="{Binding Path=WlanMac4, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap"/>
<TextBlock Grid.Row="6" Grid.Column="0" Text="Bluetooth MAC" />
<TextBlock Grid.Row="6" Grid.Column="1" Text="{Binding Path=BluetoothMac, Converter={StaticResource MACConverter}, Mode=OneWay}" TextWrapping="Wrap" />
</Grid>
</local:Paragraph>
</FlowDocument>
@@ -121,10 +133,24 @@ DEALINGS IN THE SOFTWARE.
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Row="1" Grid.Column="0" Text="Sim lock" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="Disabled" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=IsSimLocked, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="Enabled" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=IsSimLocked, Converter={StaticResource VisibilityConverter}}"/>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Boot policy" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=BootPolicy}" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="DB" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=Db}" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" />
<TextBlock Grid.Row="2" Grid.Column="0" Text="DBX" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=Dbx}" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" />
<TextBlock Grid.Row="3" Grid.Column="0" Text="KEK" />
<TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding Path=Kek}" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" />
<TextBlock Grid.Row="4" Grid.Column="0" Text="PK" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding Path=Pk}" FontWeight="Bold" Foreground="#FF3753A6" TextWrapping="Wrap" />
<TextBlock Grid.Row="5" Grid.Column="0" Text="Sim lock" />
<TextBlock Grid.Row="5" Grid.Column="1" Text="Disabled" FontWeight="Bold" Foreground="#FF40C133" TextWrapping="Wrap" Visibility="{Binding Path=IsSimLocked, Converter={StaticResource InverseVisibilityConverter}}" />
<TextBlock Grid.Row="5" Grid.Column="1" Text="Enabled" FontWeight="Bold" Foreground="#FFAC3631" TextWrapping="Wrap" Visibility="{Binding Path=IsSimLocked, Converter={StaticResource VisibilityConverter}}"/>
</Grid>
<LineBreak />
<LineBreak />