[Bug 49160] New: Unity: SystemInfo.deviceUniqueIdentifier always the same under Wine

WineHQ Bugzilla wine-bugs at winehq.org
Thu May 14 20:42:57 CDT 2020


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

            Bug ID: 49160
           Summary: Unity: SystemInfo.deviceUniqueIdentifier always the
                    same under Wine
           Product: Wine
           Version: 5.8
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wmi&wbemprox
          Assignee: wine-bugs at winehq.org
          Reporter: jamiesonc2 at gmail.com
      Distribution: Ubuntu

Unity's SystemInfo.deviceUniqueIdentifier always returns the same value under
Wine, because the underlying data used to populate the property are hardcoded
in Wine. Applications that depend on SystemInfo.deviceUniqueIdentifier being
unique between different systems may behave unexpectedly, including identity
collisions in cloud services clients.

This behavior was observed in the Syrinscape Online (beta) application, which
relies on SystemInfo.deviceUniqueIdentifier to link desktop apps with online
accounts. Wine users are getting linked with other Wine users' online accounts
because all of the Syrinscape Online clients appear to be running on the same
device.

https://www.syrinscape.com/online/

See this Syrinscape support forum thread where the issue was discussed:

https://forum.syrinscape.com/t/who-is-stuart-kehoe/8850

Details about Unity's SystemInfo.deviceUniqueIdentifier:

https://docs.unity3d.com/ScriptReference/SystemInfo-deviceUniqueIdentifier.html

The following data is retrieved from wbemprox to generate a UID:

Win32_BaseBoard::SerialNumber
Win32_BIOS::SerialNumber
Win32_Processor::UniqueId
Win32_DiskDrive::SerialNumber
Win32_OperatingSystem::SerialNumber

As of Wine 5.8, these values are hardcoded. From the latest wbemprox/builtin.c
at the time of this writing:

https://source.winehq.org/git/wine.git/blob/93758fc3ef16eed6cf1639aa6c31f6ab7fdccd72:/dlls/wbemprox/builtin.c

Line 1103: Baseboard serial number = L"None"
Line 1295: BIOS serial number = L"0"
Line 2117: DiskDrive serial number = L"WINEHDISK"
Line 3216: Processor unique ID = NULL
Line 3417: OS serial number = L"12345-OEM-1234567-12345"

As a consequence of the above, the value of Unity's
SystemInfo.deviceUniqueIdentifier is always:

12a9126b14ff9b78b28d00f78e2bff20a224611b

PROPOSED:

If it is impractical to obtain actual serial numbers/IDs for the aforementioned
components, consider populating the values in a way that facilitates more
convenient user customization to workaround application issues.

1. Consider sourcing the values from specially designated registry keys,
populated during new WINE_PREFIX setup.

2. Consider populating said registry keys with random values rather than fixed
values. This will obviate the need for users to do any manual workarounds. (Not
sure if it would break other things, but philosophically, it's not unreasonable
to treat every WINE_PREFIX as though it's a whole new system build.)

-- 
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