FR: API to get Chrome OS version from ARC
Reported by
f5mobile...@gmail.com,
Sep 5
|
|||||
Issue descriptionChrome Version : 67.0.3396.99 OS Version: 10575.58.0 What is the expected result? Need API to retrieve ChromeOS version on which the Android app is running (within the Android subsystem). BUILD.VERSION.RELEASE yields 7.1.1 (current android subsystem version) and not the ChromeOS version. Its necessary to know both Android and ChromeOS for various purposes. What happens instead of that? No API to find ChromeOS version with android subsystem. UserAgentString: Mozilla/5.0 (X11; CrOS aarch64 10575.58.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
,
Sep 18
Could you elaborate on the use case? In general, knowing the Android version / API level should be sufficient for apps.
,
Sep 18
For example, When the Chromebook is managed by an MDM (Mobile Device Management) system and the administrator would want to push policies based on OS Type/Version. MDM system most times communicate with the end-device through an AGENT application installed on the end-device. Porting the Android MDM Agent to ChromeOS to manage the device faces roadblocks.
,
Sep 20
The Android Runtime for Chrome is managed differently from traditional Android devices. Rather than having a Device Policy Controller app on the device, the EMM can configure policies via cloud-side APIs. The policies are then sent to Chrome OS, which forwards them to the Android part of the system. There are currently five approved partners that use the EMM API: https://support.google.com/chrome/a/answer/7532316
,
Sep 21
The use-case is as a VPN gateway, our app requires to know the client OS type. VPN client app is not related to EMM. VPN gateway applies various policies and checks based on OS Type.
,
Sep 24
Any Updates?
,
Nov 5
Update: We still do not understand the exact reason why this is needed. Can you elaborate more on the use case? Do you have users asking for this feature? (Please feel free to continue via mail in case of non-public information.)
,
Nov 6
The use-case is as a VPN gateway. The VPN client running on Android and ChromeOS's Android container requires to differentiate between the two platforms. We apply policies and other configurations based on OS Type. Policies applied to traffic originating from Android will differ from policies applied to traffic generated from ChromeOS device. Differentiating the Android platform from Android container running on ChromeOS platform will help the cause.
,
Nov 7
,
Nov 8
So you do not need the specific Chrome OS version but a way to distinguish Android-on-Chrome-OS from vanilla Android on a phone/tablet? We intentionally do not provide an API to check whether the system is running on top of Chrome OS, as we strive to keep the Android we provide compatible with vanilla Android. Apps should not need to know or care which of the two environments they are running in. That said, we have full support for enterprise policies. An admin absolutely can push different configurations to the same VPN client app running on a phone vs. a Chromebook. Does that help?
,
Nov 8
On the VPN side, we might need to restrict older ChromeOS versions that we deem to be vulnerable and also might need to restrict access to experimental dev and beta channel ChromeOS. Though the intention of chrome team is to provide users with the same vanilla Android experience while running Android on ChromeOS, the above-mentioned information might be critical from network admin's or VPN provider's standpoint.
,
Nov 9
Thanks for clarifying. This does sound like a legitimate FR indeed. Since you are responsible for securing access to the customer's network, you would want to cut off older, known-vulnerable clients. We do not have any flags or APIs for checking the underlying Chrome OS version, for the reasons outlined above. I started an internal thread to discuss whether we want to add APIs for this. I am assigning this bug to myself and will post further updates as I get them.
,
Nov 9
I got a response already. You should be able to parse the Chrome OS version out of the build fingerprint, which is exposed to apps [1]. The format is $(BRAND)/$(PRODUCT)/$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS), for example google/reks/reks_cheets:6.0.1/R52-8212.0.0/277624:user/release-keys. [1] https://developer.android.com/reference/android/os/Build
,
Nov 9
,
Nov 9
How to interpret the ChromeOS version from Build.Fingerprint? Here is the fingerprint generated from within android container running on ChromeOS. BOARD : elm BOOTLOADER : unknown BRAND : google CPU_ABI : armeabi-v7a CPU_ABI2 : armeabi DEVICE : elm_cheets DISPLAY : R69-10895.56.0 release-keys FINGERPRINT : google/elm/elm_cheets:7.1.1/R69-10895.56.0/5006116:user/release-keys HARDWARE : cheets HOST : abfarm417 ID : R69-10895.56.0 MANUFACTURER : google MODEL : Acer Chromebook R13 (CB5-312T) PRODUCT : elm RADIO : unknown SERIAL : unknown TYPE : user USER : android-build But the version of ChromeOS is (see attachment). How to correctly interpret?
,
Nov 15
Your three screen shots show: 1) The version of the Chrome browser. 2) The version of Chrome OS (the operating system). 3) The version of Android and various other components. Since you were looking for OS version information, screen shot (2) is the relevant one. If you interpret your value for the "FINGERPRINT" key according to the format I posted in my previous comment, you will see that you are running version 69, specifically release 10895.56.0. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by dtapu...@chromium.org
, Sep 5