Я только что получил свой Treo и, отметив отсутствие сброса программного обеспечения (необходимость использовать стилус на кнопке сброса действительно раздражает меня), я решил создать свой собственный.
Часть моей маленькой программы «Сбросить и приостановить» работает как чудо, и тогда я решил немного улучшить ее и добавить функцию жесткого сброса, которая восстановит заводские настройки устройства.
Поиск высоко и низко в сети, я нашел два возможных пути. Первый включал вызов SetCleanRebootFlag()
, а затем перезагрузил устройство.
[DllImport("coredll.dll", SetLastError=true)]
public static extern void SetCleanRebootFlag();
[DllImport("coredll.dll", SetLastError=true)]
private static extern int SetSystemPowerState(IntPtr psState, PowerStateFlags flags, uint Options);
[DllImport("coredll.dll", SetLastError=true)]
private static extern bool KernelIoControl(int dwIoControlCode, IntPtr inBuf, int inBufSize, IntPtr outBuf, int outBufSize, ref int bytesReturned);
public static void SoftReset()
{
if (SetSystemPowerState(IntPtr.Zero, PowerStateFlags.Reset, 0x1000) != 0)
{
int bytesReturned = 0;
if (!KernelIoControl(0x101003c, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned))
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
}
}
public static void HardReset()
{
SetCleanRebootFlag();
SoftReset();
}
Другой связан с использованием ConfigurationManager
для обработки XML, который будет выполнять «RemoteWipe».
public static void HardReset()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<wap-provisioningdoc>" +
"<characteristic type='RemoteWipe'>" +
"<parm name='doWipe' value='1'/>" +
"</characteristic>" +
"</wap-provisioningdoc>");
ConfigurationManager.ProcessConfiguration(doc, true);
}
Первый метод не работал, потому что после Windows Mobile 5 он игнорирует CleanBootFlag
; второй метод работал ... слишком много.
Он повредил microSD на устройстве до такой степени, что его необходимо было переформатировать для повторного распознавания.
Кто-нибудь имел с этим опыт?
Отредактировано для добавления :
К сожалению, ответ на мой вопрос в точности такой, как сказал Пол Беттс . Цитировать MSDN
Поставщик услуг конфигурации RemoteWipe позволяет операторам мобильной связи удаленно стирать устройство. Поставщик услуг конфигурации RemoteWipe затруднит восстановление данных, хранящихся в памяти, на картах памяти и на жестких дисках , если устройство удаленно будет удалено после потери или кражи.