Нужно ли подписывать код для приложений Windows Mobile? - PullRequest
0 голосов
/ 10 июня 2011

Я хочу создать приложение для Windows Mobile и распространять его с моего сайта, но я не хочу покупать сертификат подписи кода.У меня смартфон HTC Diamond2 (WM6.1), и он позволяет мне запускать мое не подписанное приложение.Это не дает мне никаких предупреждений, хотя мое приложение подключается к сети и делает звонки.Кроме того, несколько лет назад у меня было устройство Windows Mobile 4.0, и оно также не требовало подписи.Поэтому я всегда думал, что подпись кода не обязательна для Windows Mobile.Но недавно я прочитал, что это может потребоваться ???

Итак, вопрос: если я распространю свое приложение с моего сайта по всему миру, сколько пользователей не смогут его использовать, потому что оно не подписано?Я имею в виду, какой процент?Может в разных странах все по-другому?Может быть, в странах, где большинство телефонов продается заблокированными, требуется подпись, а в странах, где телефоны обычно продаются разблокированными, подпись не требуется?

Пожалуйста, просветите меня в этом вопросе.

Ответы [ 2 ]

0 голосов
/ 16 июля 2011

Вы можете изменить некоторые ключи реестра, чтобы на устройстве можно было запускать любой исполняемый файл. На устройстве Windows Mobile 6.0 по умолчанию вы увидите «Вы хотите разрешить запуск _ .EXE?» неожиданно возникнуть. Если вы нажмете «да», и программа внесет изменения в реестр и перезапустит устройство, тогда любое приложение сможет работать.

// Checks to see if the policies in the registry need to be adjusted to allow
// an unsigned program to run.  This also affects WCELOAD.EXE as well.
// This is needed to run some programs on Windows Mobile 6 from an unsigned application.
void UpdatePolicy()
{
    BOOL bPolicyNeedsUpdate = FALSE;
    DWORD dwExistingPolicy = 0;
    DWORD dwNewPolicy = 0;
    HKEY hKey = NULL;
    DWORD dwSize = sizeof(DWORD);

    RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("Security\\Policies\\Policies"), 0, NULL, 0,
        KEY_ALL_ACCESS, NULL, &hKey, NULL);
    // See if the policy has already been adjusted.
    if (hKey != NULL)
    {
        DWORD dwType = 0;
        RegQueryValueEx(hKey, _T("0000101a"), NULL, &dwType, (LPBYTE)&dwExistingPolicy, &dwSize);
        if (dwExistingPolicy != 1)
            bPolicyNeedsUpdate = TRUE;
    }
    if (bPolicyNeedsUpdate)
    {
        // Adjust the policy
        dwNewPolicy = 1;
        RegSetValueEx(hKey, _T("0000101a"), NULL, REG_DWORD, (const BYTE*)&dwNewPolicy, dwSize);
        RegSetValueEx(hKey, _T("00001001"), NULL, REG_DWORD, (const BYTE*)&dwNewPolicy, dwSize);
        dwNewPolicy = 40;
        RegSetValueEx(hKey, _T("00001005"), NULL, REG_DWORD, (const BYTE*)&dwNewPolicy, dwSize);
        dwNewPolicy = 144;
        RegSetValueEx(hKey, _T("00001017"), NULL, REG_DWORD, (const BYTE*)&dwNewPolicy, dwSize);
        // Reboot so the changes take effect
        Reboot();
    }
    RegCloseKey(hKey);
}

void Reboot()
{
    SetSystemPowerState(NULL, POWER_STATE_RESET, 0);
}
0 голосов
/ 15 июня 2011

Существуют разные уровни безопасности, которые производитель устройства может указать при сборке ОС. На самом высоком уровне вам необходимо подписать ваше заявление. На самом низком уровне вы можете скопировать исполняемый файл на устройство и запустить его. Существуют промежуточные уровни, которые позволяют приложениям, установленным через CAB-файл, запускаться, даже если они не подписаны. Как правило, если устройство приобретено у оператора сотовой связи, вам, вероятно, потребуется подписать приложение (или взломать устройство). Если устройство приобретено у производителя, и вы добавляете собственную SIM-карту, есть большая вероятность, что подпись не потребуется. По моему опыту, больше устройств WM6 имеют более высокие настройки безопасности, чем устройства WM5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...