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
@@ -28,13 +28,14 @@ namespace WPinternals
private PhoneNotifierViewModel PhoneNotifier;
private Action<string, string, string> FlashPartitionsCallback;
private Action<string> FlashFFUCallback;
private Action<string> FlashMMOSCallback;
private Action<string> FlashArchiveCallback;
internal Action SwitchToUnlockBoot;
internal Action SwitchToUnlockRoot;
internal Action SwitchToDumpFFU;
internal Action SwitchToBackup;
internal LumiaFlashRomSourceSelectionViewModel(PhoneNotifierViewModel PhoneNotifier, Action SwitchToUnlockBoot, Action SwitchToUnlockRoot, Action SwitchToDumpFFU, Action SwitchToBackup, Action<string, string, string> FlashPartitionsCallback, Action<string> FlashArchiveCallback, Action<string> FlashFFUCallback)
internal LumiaFlashRomSourceSelectionViewModel(PhoneNotifierViewModel PhoneNotifier, Action SwitchToUnlockBoot, Action SwitchToUnlockRoot, Action SwitchToDumpFFU, Action SwitchToBackup, Action<string, string, string> FlashPartitionsCallback, Action<string> FlashArchiveCallback, Action<string> FlashFFUCallback, Action<string> FlashMMOSCallback)
: base()
{
this.PhoneNotifier = PhoneNotifier;
@@ -45,6 +46,7 @@ namespace WPinternals
this.FlashPartitionsCallback = FlashPartitionsCallback;
this.FlashArchiveCallback = FlashArchiveCallback;
this.FlashFFUCallback = FlashFFUCallback;
this.FlashMMOSCallback = FlashMMOSCallback;
this.PhoneNotifier.NewDeviceArrived += NewDeviceArrived;
this.PhoneNotifier.DeviceRemoved += DeviceRemoved;
@@ -137,6 +139,23 @@ namespace WPinternals
}
}
private string _MMOSPath;
public string MMOSPath
{
get
{
return _MMOSPath;
}
set
{
if (value != _MMOSPath)
{
_MMOSPath = value;
OnPropertyChanged("MMOSPath");
}
}
}
private bool _IsPhoneDisconnected;
public bool IsPhoneDisconnected
{
@@ -214,6 +233,19 @@ namespace WPinternals
}
}
private DelegateCommand _FlashMMOSCommand;
public DelegateCommand FlashMMOSCommand
{
get
{
if (_FlashMMOSCommand == null)
{
_FlashMMOSCommand = new DelegateCommand(() => { FlashMMOSCallback(MMOSPath); }, () => ((MMOSPath != null) && (PhoneNotifier.CurrentInterface != null)));
}
return _FlashMMOSCommand;
}
}
private DelegateCommand _FlashArchiveCommand;
public DelegateCommand FlashArchiveCommand
{
@@ -257,6 +289,7 @@ namespace WPinternals
FlashPartitionsCommand.RaiseCanExecuteChanged();
FlashArchiveCommand.RaiseCanExecuteChanged();
FlashFFUCommand.RaiseCanExecuteChanged();
FlashMMOSCommand.RaiseCanExecuteChanged();
}
}
}