Кто-нибудь использовал RemoteWipe в Windows Mobile? - PullRequest
0 голосов
/ 22 декабря 2009

Я только что получил свой 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 затруднит восстановление данных, хранящихся в памяти, на картах памяти и на жестких дисках , если устройство удаленно будет удалено после потери или кражи.

1 Ответ

2 голосов
/ 22 декабря 2009

Разве это не то, что Remote Wipe должен делать?

...