[Bug 25918] Google Chrome Standalone (offline) untagged installers fail with "Unknown Installer Error" (0x80040750 GOOPDATE_E_UNTAGGED_METAINSTALLER)

WineHQ Bugzilla wine-bugs at winehq.org
Sun Nov 21 10:34:39 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=25918

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Google Chrome Standalone    |Google Chrome Standalone
                   |(offline) installer fails   |(offline) untagged
                   |with "Unknown Installer     |installers fail with
                   |Error"                      |"Unknown Installer Error"
                   |                            |(0x80040750
                   |                            |GOOPDATE_E_UNTAGGED_METAINS
                   |                            |TALLER)
                URL|https://dl.google.com/updat |https://web.archive.org/web
                   |e2/installers/ChromeStandal |/20140215100822/https://dl.
                   |oneSetup.exe                |google.com/update2/installe
                   |                            |rs/ChromeStandaloneSetup.ex
                   |                            |e

--- Comment #15 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

adding stable download links via Internet Archive for documentation.

Google Chrome 32.0.1700.107

https://web.archive.org/web/20140215100822/https://dl.google.com/update2/installers/ChromeStandaloneSetup.exe

https://www.virustotal.com/gui/file/641b0da7b21a7308bd35bc218819263df6925d038564701223c32c8849f5220c

$ sha1sum ChromeStandaloneSetup.exe 
e61fd2983c9ee6663805afcc918d79ddb243dfd0  ChromeStandaloneSetup.exe

$ du -sh ChromeStandaloneSetup.exe 
37M    ChromeStandaloneSetup.exe

Google Chrome 69.0.3497.100

https://web.archive.org/web/20180929104502/https://dl.google.com/chrome/install/standalonesetup.exe

https://www.virustotal.com/gui/file/38cb1c4577beca2adfc2bffe95aedf31013761db6df391535a41c0f42971e83c

$ sha1sum standalonesetup.exe 
639a350228845e00ed97ed9c506f2f006202d115  standalonesetup.exe

$ du -sh standalonesetup.exe 
51M    standalonesetup.exe

Updated link to Github project sources because 'code.google.com/p/' is dead
since long time.

https://github.com/google/omaha/blob/5d4cfe7d3e05aa87f547de869f6728f83f21bc93/omaha/mi_exe_stub/mi.cc#L146

--- snip ---
  int ExtractAndRun() {
    if (CreateUniqueTempDirectory() != 0) {
      return -1;
    }
    scoped_hfile tarball_file(ExtractTarballToTempLocation());
    if (!valid(tarball_file)) {
      return -1;
    }

    // Extract files from the archive and run the first EXE we find in it.
    Tar tar(temp_dir_, get(tarball_file), true);
    tar.SetCallback(TarFileCallback, this);
    if (!tar.ExtractToDir()) {
      return -1;
    }

    exit_code_ = ULONG_MAX;
    if (!exe_path_.IsEmpty()) {
      // Build the command line. There are three scenarios we consider:
      // 1. Run by the user, in which case the MI does not receive any
      //    argument on its command line. In this case the command line
      //    to run is: "exe_path" /install [["]manifest["]]
      // 2. Run with command line arguments. The tag, if present, will be
      //    appended to the command line.
      //    The command line is: "exe_path" args <tag>
      //    For example, pass "/silent /install" to the metainstaller to
      //    initiate a silent install using the extra args in the tag.
      //    If a command line does not take a tag or a custom tag is needed,
      //    use an untagged file.
      CString command_line(exe_path_);
      ::PathQuoteSpaces(CStrBuf(command_line, MAX_PATH));

      scoped_array<char> tag(GetTag());
      if (cmd_line_.IsEmpty()) {
        // Run-by-user case.
        if (!tag.get()) {
          _ASSERTE(!_T("Must provide arguments with untagged metainstaller."));
          HRESULT hr = GOOPDATE_E_UNTAGGED_METAINSTALLER;
          HandleError(hr);
          return hr;
        }
        command_line.AppendFormat(_T(" /%s %s /%s"),
                                  kCmdLineInstallSource,
                                  kCmdLineInstallSource_TaggedMetainstaller,
                                  kCmdLineInstall);
      } else {
        command_line.AppendFormat(_T(" %s"), cmd_line_);

        CheckAndHandleRecoveryCase(&command_line);
      }

      if (tag.get()) {
        command_line.AppendFormat(_T(" \"%s\""), CString(tag.get()));
      }

      RunAndWait(command_line, &exit_code_);
    }
    // Propagate up the exit code of the program we have run.
    return exit_code_;
  }
--- snip ---

If you run the untagged standalone installers just with '/install' argument it
will still fail due to hard-coded brain damage in the updater
(GoogleUpdateSetup.exe / GoogleUpdate.exe).

--- snip ---
# Google Update installation failed with error 0x80040c01.
$ wine ./ChromeStandaloneSetup.exe /install /silent

# "Egads! Installation failed. Error code: 0x80040c01."
$ wine ./standalonesetup.exe /install /silent
--- snip ---

You need to pass some magic arguments:

--- snip ---
$ wine ./ChromeStandaloneSetup.exe /installsource nomitag /install
"appguid={8A69D345-D564-463C-AFF1-A69D9E530F96}&iid={C3EB1856-4FB5-6D2F-DF46-BA3BAA23BC5A}&lang=en&browser=4&usagestats=0&appname=Google%20Chrome&needsadmin=prefers"

$ wine ./standalonesetup.exe /installsource nomitag /install
"appguid={8A69D345-D564-463C-AFF1-A69D9E530F96}&iid={C3EB1856-4FB5-6D2F-DF46-BA3BAA23BC5A}&lang=en&browser=4&usagestats=0&appname=Google%20Chrome&needsadmin=prefers"
--- snip ---

Add '/silent' for silent install.

Note, the updater will still try to contact Google (updater API) but keep the
local version.

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list