Running omaha on Windows 8 : QuickFix

148 views
Skip to first unread message

Prad Lal

unread,
Sep 11, 2013, 11:42:34 AM9/11/13
to omaha-...@googlegroups.com
Hello,

 This is a quickfix for running an omaha metainstaller on Windows 8, where a normally built installer would fail on the following :

base\system_info.cc line:163
ASSERT1(os_ver_cached != OS_WINDOWS_UNKNOWN && sp_cached != kuint32max);

What the following quickfix do is categorize Windows 8 (version 6.2) as OS_WINDOWS_7. In the file base\system_info.cc, under  SystemInfo::CategorizeOS function, add the highlighted code.

switch (osviex.dwPlatformId) {
        case VER_PLATFORM_WIN32_NT:
            if (osviex.dwMajorVersion == 6 && osviex.dwMinorVersion > 1) {
                os_ver_cached = OS_WINDOWS_7;
            } else if (osviex.dwMajorVersion == 6 && osviex.dwMinorVersion == 1) {
                os_ver_cached = OS_WINDOWS_7;
            } else if (osviex.dwMajorVersion == 6 && osviex.dwMinorVersion == 0) {
                os_ver_cached = OS_WINDOWS_VISTA;
            } else if (osviex.dwMajorVersion == 5 && osviex.dwMinorVersion == 2) {
                os_ver_cached = OS_WINDOWS_SERVER_2003;
            } else if (osviex.dwMajorVersion == 5 && osviex.dwMinorVersion == 1) {
                os_ver_cached = OS_WINDOWS_XP;
            } else if (osviex.dwMajorVersion == 5 && osviex.dwMinorVersion == 0) {
                os_ver_cached = OS_WINDOWS_2000;
            } else if (osviex.dwMajorVersion <= 4) {
                os_ver_cached = OS_WINDOWS_9X_OR_NT;
              break;
        } else {
            os_ver_cached = OS_WINDOWS_UNKNOWN;
            break;
        }
        sp_cached = osviex.wServicePackMajor;
        break;

Definitely not elegant, but for those wondering whether the current fork of omaha updater would run on Windows 8, the answer is YES.

Cheers.
Prad

Dmitry A. Shashkin

unread,
Dec 8, 2014, 9:03:11 AM12/8/14
to omaha-...@googlegroups.com
More elegant way is to define another OSVersionType enum element for Windows 8 and use it inside SystemInfo::CategorizeOS and also add it to SystemInfo::OSVersionTypeAsString like it's done here.
Reply all
Reply to author
Forward
0 new messages