Allow OEMs to restrict access to secondary display

This is crucial for automotive use-cases when OEMs want to restrict
access to instrument cluster display by third-party apps

Bug: 28864915
Bug: 70840956
Test: manually verify that secondary display with private flag is not
accessible by third-party apps and accessible to apps with system uid

Change-Id: I39e36c2ea73d879a4c7b01220ae852298d868fd5
This commit is contained in:
Pavel Maltsev
2018-04-04 10:14:55 -07:00
parent f6f68802c9
commit a6fec7be6c
3 changed files with 9 additions and 0 deletions

View File

@@ -2249,6 +2249,10 @@
mirror the content of the default display. -->
<bool name="config_localDisplaysMirrorContent">true</bool>
<!-- Indicates whether local non-default displays are private.
{@see android.view.Display#FLAG_PRIVATE} -->
<bool name="config_localDisplaysPrivate">false</bool>
<!-- The default mode for the default display. One of the following values (See Display.java):
0 - COLOR_MODE_DEFAULT
7 - COLOR_MODE_SRGB

View File

@@ -352,6 +352,7 @@
<java-symbol type="bool" name="config_noHomeScreen" />
<java-symbol type="bool" name="config_guestUserEphemeral" />
<java-symbol type="bool" name="config_localDisplaysMirrorContent" />
<java-symbol type="bool" name="config_localDisplaysPrivate" />
<java-symbol type="integer" name="config_defaultDisplayDefaultColorMode" />
<java-symbol type="bool" name="config_enableAppWidgetService" />
<java-symbol type="string" name="config_defaultPictureInPictureScreenEdgeInsets" />

View File

@@ -436,6 +436,10 @@ final class LocalDisplayAdapter extends DisplayAdapter {
com.android.internal.R.bool.config_localDisplaysMirrorContent)) {
mInfo.flags |= DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY;
}
if (res.getBoolean(com.android.internal.R.bool.config_localDisplaysPrivate)) {
mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE;
}
}
}
return mInfo;