Difference between revisions of "Device ID"
m (Fixed Device ID description) |
|||
Line 21: | Line 21: | ||
In the UWP/WinX client, the device id is created using the [https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.hardwareidentification.getpackagespecifictoken| ASHWID identifier] encoded to a Base64 string. | In the UWP/WinX client, the device id is created using the [https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.hardwareidentification.getpackagespecifictoken| ASHWID identifier] encoded to a Base64 string. | ||
=== Android === | === Android === | ||
− | On the native Android client, the [https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID| ANDROID_ID (SSAID)] is accessed. Before Android 8, this ID was bound to a device for its lifetime. Since Android 8, the ID is different for every user (if the device has the multi-user feature enabled) and when the app is | + | On the native Android client, the [https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID| ANDROID_ID (SSAID)] is accessed. Before Android 8, this ID was bound to a device for its lifetime. Since Android 8, the ID is different for every user (if the device has the multi-user feature enabled) and when the device is reset. |
+ | |||
+ | On the Android Xamarin app, before version 1.0.80, depending on the version of the OS, the [https://developer.android.com/reference/android/os/Build#SERIAL| Build.SERIAL] is accessed (below Android 8), and [https://developer.android.com/reference/android/os/Build#getSerial()| Build.getSerial] starting with Android 8, also requiring the <code>READ_PHONE_STATE</code> permission. With Android 10, the function only works for devices enrolled in an organization. | ||
+ | |||
+ | Version 1.0.80 of the Xamarin Android app based the device ID onto the [https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID| ANDROID_ID (SSAID)], in the same way to how the native Android client does it. This also removed the need for the <code>READ_PHONE_STATE</code> permission. | ||
+ | |||
+ | [[Category:Android|Device ID]] | ||
+ | [[Category:Device management|Device ID]] | ||
+ | [[Category:Hardware|Device ID]] | ||
+ | [[Category:WinX|Device ID]] | ||
+ | [[Category:Xamarin|Device ID]] | ||
− | |||
=== iOS === | === iOS === | ||
On iOS, the application makes use of the [https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor| identifierForVendor]. This is a GUID uniquely identifying a device to an app vendor. | On iOS, the application makes use of the [https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor| identifierForVendor]. This is a GUID uniquely identifying a device to an app vendor. |
Revision as of 14:18, 2 July 2020
The Device ID is a unique identifier of the device, which is fetched from the OS and used to uniquely identify devices to restrict access to them. The type of ID and its origin vary by platform. The Device ID is also sent to the Ubik Web Service.
Contents
Accessing the Device ID
Accessing the Device ID is designed to be simple.
Android
On the legacy Android client, the Device ID can be found on the Information page.
UWP
On the Windows client, the Device ID can be accessed on the Connection Settings page.
Xamarin
On the newer Xamarin clients (iOS and Android), the Device ID can be inspected on the General Settings page.
Technical Information
The Device ID should be unique enough to exclusively identify a device/client and shouldn't get lost if the app updates.
Windows
In the UWP/WinX client, the device id is created using the ASHWID identifier encoded to a Base64 string.
Android
On the native Android client, the ANDROID_ID (SSAID) is accessed. Before Android 8, this ID was bound to a device for its lifetime. Since Android 8, the ID is different for every user (if the device has the multi-user feature enabled) and when the device is reset.
On the Android Xamarin app, before version 1.0.80, depending on the version of the OS, the Build.SERIAL is accessed (below Android 8), and Build.getSerial starting with Android 8, also requiring the READ_PHONE_STATE
permission. With Android 10, the function only works for devices enrolled in an organization.
Version 1.0.80 of the Xamarin Android app based the device ID onto the ANDROID_ID (SSAID), in the same way to how the native Android client does it. This also removed the need for the READ_PHONE_STATE
permission.
iOS
On iOS, the application makes use of the identifierForVendor. This is a GUID uniquely identifying a device to an app vendor.