OSDN Git Service

android-x86/frameworks-native.git
7 years agolibhwc2on1adapter: mark as vendor_available
Steven Moreland [Wed, 12 Apr 2017 04:28:39 +0000 (21:28 -0700)]
libhwc2on1adapter: mark as vendor_available

By setting vendor_available, the following may become true:

* a prebuilt library from this release may be used at runtime by
  in a later releasse (by vendor code compiled against this release).
  so this library shouldn't depend on runtime state that may change
  in the future.
* this library may be loaded twice into a single process (potentially
  an old version and a newer version). The symbols will be isolated
  using linker namespaces, but this may break assumptions about 1
  library in 1 process (your singletons will run twice).

Background:

This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.

At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.

It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:

https://android-review.googlesource.com/368372

None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.

Bug: 36426473
Bug: 36079834
Test: m -j libhwc2on1adapter
Test: attempt to compile with BOARD_VNDK_VERSION := current
Change-Id: Ide1e74a5e99b30fef9daca2b551e7eb9f46727a5

7 years agoIServiceManager: dump stack on blocked vndbinder requests
Iliyan Malchev [Mon, 10 Apr 2017 21:09:04 +0000 (14:09 -0700)]
IServiceManager: dump stack on blocked vndbinder requests

Dump the stack of the thread requesting a service over /dev/vndbinder,
when the requestor is blocked waiting on the service.  This is very
helpful in identifying bugs in converting code to /dev/vndbinder.

Test: sailfish

Change-Id: Iaaf6a83df3465dd5b64cd83c19d8918cfa01d3d8
Signed-off-by: Iliyan Malchev <malchev@google.com>
7 years agobinder: add getDriverName()
Iliyan Malchev [Mon, 10 Apr 2017 21:06:11 +0000 (14:06 -0700)]
binder: add getDriverName()

Ass ProcessState::getDriverName() to retrieve the /dev node that
libbinder is initialized with in this process.  This can be used
elsewhere to add debug code that is enabled for only one binder domain
or another.

Test: sailfish

Change-Id: I3ea9f0dcc97204508791bdeb70f790980be278a5
Signed-off-by: Iliyan Malchev <malchev@google.com>
7 years agoMerge changes from topic 'llndk_rename' into oc-dev
TreeHugger Robot [Tue, 11 Apr 2017 07:22:19 +0000 (07:22 +0000)]
Merge changes from topic 'llndk_rename' into oc-dev

* changes:
  Remove .(ll)ndk suffix from (ll)ndk_library
  Remove .(ll)ndk suffix from (ll)ndk_library

7 years agoMerge "Load Vulkan driver into sphal namespace" into oc-dev
TreeHugger Robot [Tue, 11 Apr 2017 03:14:13 +0000 (03:14 +0000)]
Merge "Load Vulkan driver into sphal namespace" into oc-dev

7 years agoMerge "libui: update for revised HIDL gralloc" into oc-dev
Chia-I Wu [Tue, 11 Apr 2017 01:08:37 +0000 (01:08 +0000)]
Merge "libui: update for revised HIDL gralloc" into oc-dev

7 years agoMerge "Work on issue #36863299: [Fugu] CTS: PermissionFeatureTest failures:..." into...
TreeHugger Robot [Tue, 11 Apr 2017 00:47:50 +0000 (00:47 +0000)]
Merge "Work on issue #36863299: [Fugu] CTS: PermissionFeatureTest failures:..." into oc-dev

7 years agoRemove .(ll)ndk suffix from (ll)ndk_library
Steven Moreland [Mon, 10 Apr 2017 19:56:54 +0000 (12:56 -0700)]
Remove .(ll)ndk suffix from (ll)ndk_library

Soong handles these automatically now.

Bug: 33241851
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Change-Id: I5a16edfb57ca9d3059cdef0a57c7c79e614878fe

7 years agoRemove .(ll)ndk suffix from (ll)ndk_library
Dan Willemsen [Fri, 7 Apr 2017 22:48:39 +0000 (15:48 -0700)]
Remove .(ll)ndk suffix from (ll)ndk_library

Soong handles these automatically now.

Bug: 33241851
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Change-Id: Ie1cd267564095c51e536b7a84d53e7aed9dca288

7 years agoWork on issue #36863299: [Fugu] CTS: PermissionFeatureTest failures:...
Dianne Hackborn [Mon, 10 Apr 2017 18:55:24 +0000 (11:55 -0700)]
Work on issue #36863299: [Fugu] CTS: PermissionFeatureTest failures:...

...File ata/etc/tv_core_hardware.xml does not exist

Add new separate file for the CTS feature.

Test: none needed

Change-Id: I3be83072e65781224c735b920b0b4fba22f57e4c

7 years agoMerge "Get a hack in place for broken quotas." into oc-dev
TreeHugger Robot [Mon, 10 Apr 2017 18:45:47 +0000 (18:45 +0000)]
Merge "Get a hack in place for broken quotas." into oc-dev

7 years agolibui: update for revised HIDL gralloc
Chia-I Wu [Thu, 6 Apr 2017 19:34:32 +0000 (12:34 -0700)]
libui: update for revised HIDL gralloc

The revised HIDL gralloc is implementable on top of gralloc0 and
gralloc1, which enables us to remove all legacy code.

However, it lacks the ability to query buffer properties from a
buffer handle.  GetBufferFromHandle in VR always fails.

Bug: 36481301
Test: builds and boots on Pixel
Change-Id: Id7cfa2d2172dfc008803860f24fcf4f03ba05f11

7 years agoMerge "Add missing functor for DVR API" into oc-dev
TreeHugger Robot [Mon, 10 Apr 2017 15:46:58 +0000 (15:46 +0000)]
Merge "Add missing functor for DVR API" into oc-dev

7 years agoMerge "Revert "Avoid a potential race condition on mDisplays"" into oc-dev
Polina Bondarenko [Mon, 10 Apr 2017 11:07:31 +0000 (11:07 +0000)]
Merge "Revert "Avoid a potential race condition on mDisplays"" into oc-dev

7 years agoRevert "Avoid a potential race condition on mDisplays"
Polina Bondarenko [Mon, 10 Apr 2017 10:15:42 +0000 (10:15 +0000)]
Revert "Avoid a potential race condition on mDisplays"

This reverts commit 5576a555a14edd8c76addce2cee37b9b9ced2c3f.

Change-Id: I5d5889fccd94acacfbfef29847e4b65ef2543c75

7 years agoGet a hack in place for broken quotas.
Jeff Sharkey [Mon, 10 Apr 2017 06:19:46 +0000 (00:19 -0600)]
Get a hack in place for broken quotas.

Sadly we mixed together both UID and GID quotas in such a way that
we couldn't detangle the actual data-vs-cache usage in all cases.

Temporarily patch over this to get CTS passing until we can circle
back and try again.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 3673117537193650
Change-Id: I5870b4e9c22398762fc47672e4d5d78c06bef79f

7 years agoMerge "Load GL graphics drivers explicitly from sphal namespace" into oc-dev
TreeHugger Robot [Mon, 10 Apr 2017 01:53:32 +0000 (01:53 +0000)]
Merge "Load GL graphics drivers explicitly from sphal namespace" into oc-dev

7 years agoLoad Vulkan driver into sphal namespace
Jesse Hall [Fri, 7 Apr 2017 23:48:02 +0000 (16:48 -0700)]
Load Vulkan driver into sphal namespace

Test: bit CtsGraphicsTestCases:.VulkanFeaturesTest
Bug: 37143654
Change-Id: I4d14b7a7642071648d52d716870a41cfb4e844f1

7 years agoLoad GL graphics drivers explicitly from sphal namespace
Jiyong Park [Wed, 5 Apr 2017 05:23:52 +0000 (14:23 +0900)]
Load GL graphics drivers explicitly from sphal namespace

In Treble term, GL wrappers (libEGL.so, libGLES*.so, ...) are called
SP-NDK and actual drivers (libEGL_*.so, libGLESv2_*.so, ...)
are called SP-HALs. (SP = Same-Process).

SP-HALs are developed by vendors and thus they can use only a subset of
framework libraries that we call vndk-stable and subset of NDK
libraries. It consists of libc, libm, liblog, libz, libnativewindow,
libc++, ..., but not framework-only libraries such as libui, libandroid,
etc.

In order to enforce such restriction at run-time, we will use the linker
namespace. Specifically, we create a new namespace named 'sphal' and
configure it so that...
1) it can only search and load libraries from /vendor/lib,
2) it redirects the load/link request to the default namespace when the
allowed list of libraries are requested from the caller, and
3) it rejects to search/load any library other than 1) and 2).

The problem here is, GL wrapper need to tell the linker to load the
drivers from the separate namespace (the 'sphal' namespace other than
the default namespace. To specify the namespace, we need to use
android_dlopen_ext() instead of dlopen().`

Bug: 34407260
Bug: 37049319
Test: none, no op for now since we haven't create sphal namespace.

Change-Id: I376dd9e5cc904452f669c27eb85c59b30b43dc39

7 years agoMerge "Add HIDL Scheduler Service implementation." into oc-dev
TreeHugger Robot [Sat, 8 Apr 2017 02:26:56 +0000 (02:26 +0000)]
Merge "Add HIDL Scheduler Service implementation." into oc-dev

7 years agoMerge "Enable FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS on phones and tablets" into...
Andrii Kulian [Sat, 8 Apr 2017 01:51:23 +0000 (01:51 +0000)]
Merge "Enable FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS on phones and tablets" into oc-dev

7 years agoMerge "Avoid a potential race condition on mDisplays" into oc-dev
TreeHugger Robot [Sat, 8 Apr 2017 01:48:20 +0000 (01:48 +0000)]
Merge "Avoid a potential race condition on mDisplays" into oc-dev

7 years agoAdd HIDL Scheduler Service implementation.
Steven Moreland [Fri, 7 Apr 2017 17:46:25 +0000 (10:46 -0700)]
Add HIDL Scheduler Service implementation.

Test: marlin camera successfully sets permissions
Bug: 29251823
Change-Id: Ic7dc0377e5b0c3b08d32cf97dae39b6d35a0f631

7 years agoMerge "(DO NOT MERGE) media: Add new OMX extension for setting latency." into oc-dev
TreeHugger Robot [Sat, 8 Apr 2017 00:02:08 +0000 (00:02 +0000)]
Merge "(DO NOT MERGE) media: Add new OMX extension for setting latency." into oc-dev

7 years agoAvoid a potential race condition on mDisplays
Stephen Kiazyk [Wed, 5 Apr 2017 23:46:49 +0000 (16:46 -0700)]
Avoid a potential race condition on mDisplays

The race could occur when transitioning in/out of VR flinger mode.
It is now avoided by ensuring that the primary |DisplayDevice| is always
created once |mStateLock| is released, and ensuring that all accesses
to the primary |DisplayDevice| are guarded by |mStateLock|.

Bug: 36194616
Test: Normal behavior is unchanged. Explicitly testing the race
condition required instrumenting code with sleep statements.

Change-Id: I1f8fcf23982c311d47267beca8127b6c29562ce5

7 years agoEnable FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS on phones and tablets
Andrii Kulian [Fri, 7 Apr 2017 23:12:44 +0000 (16:12 -0700)]
Enable FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS on phones and tablets

Bug: 36776777
Test: android.server.cts.ActivityManagerDisplayTests
Change-Id: If3fbf32f1f6c3de2f12f4b446f9350ea666a0d97

7 years agoMerge "Don't stack-allocate binder objects." into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 22:53:02 +0000 (22:53 +0000)]
Merge "Don't stack-allocate binder objects." into oc-dev

7 years agoMerge "Fix binderValueTypeTest" into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 22:27:03 +0000 (22:27 +0000)]
Merge "Fix binderValueTypeTest" into oc-dev

7 years agoFix binderValueTypeTest
Tri Vo [Fri, 7 Apr 2017 20:15:06 +0000 (13:15 -0700)]
Fix binderValueTypeTest

Bug: 36903040
Test: compile, push, run on device.
Change-Id: I788dd7f5b5800a894aba4262553c7c6361549850

7 years agoMerge "Add separate 'vndservice' binary." into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 20:03:29 +0000 (20:03 +0000)]
Merge "Add separate 'vndservice' binary." into oc-dev

7 years agoMerge "vr_hwc: Address ion buffer leakage" into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 18:35:08 +0000 (18:35 +0000)]
Merge "vr_hwc: Address ion buffer leakage" into oc-dev

7 years agoMerge "libpdx: Fix ThreadLocalBufferTest.InitialValue unittest" into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 17:49:22 +0000 (17:49 +0000)]
Merge "libpdx: Fix ThreadLocalBufferTest.InitialValue unittest" into oc-dev

7 years agoAdd separate 'vndservice' binary.
Martijn Coenen [Fri, 7 Apr 2017 17:46:57 +0000 (10:46 -0700)]
Add separate 'vndservice' binary.

This is installed on the vendor partition,
and can be used to call into vndservicemanager
and the services it hosts.

Bug: 36987120
Test: vndservice list works
Change-Id: I2d72312276cd4402ee1b399713cd5322b125b00f

7 years agoVR HWC: Relax checks around layer presentation
Daniel Nicoara [Thu, 6 Apr 2017 15:10:33 +0000 (11:10 -0400)]
VR HWC: Relax checks around layer presentation

Rather than error out on layers without buffers, simply discard them.
This is more in line with other HWComposer implementations which deal
with this error, since SurfaceFlinger doesn't handle it appropriately.

Bug: 37091090
Test: Ran on device and verified errors are no longer reported in logcat
Change-Id: Iacfd9fa707d86367c7b6dbf62edea297fc9dfb8e

7 years agoDon't stack-allocate binder objects.
Kevin Schoedel [Thu, 6 Apr 2017 17:49:41 +0000 (13:49 -0400)]
Don't stack-allocate binder objects.

These inherit from RefBase and need to be owned in an sp<>.

Bug: 36854729
Test: manual on Pixel phone
Change-Id: I5ac6f50c1a21d4c8b224d41149b16da4d438dba7
Merged-In: I54dac1298dca1eb3ab5e6751366ba67bb2e1906c

7 years agoMerge "Fix the latency model." into oc-dev
Okan Arikan [Fri, 7 Apr 2017 16:51:21 +0000 (16:51 +0000)]
Merge "Fix the latency model." into oc-dev

7 years agoMerge changes from topic 'vrflinger-prep' into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 16:48:04 +0000 (16:48 +0000)]
Merge changes from topic 'vrflinger-prep' into oc-dev

* changes:
  libpdx: Decay variant types to correctly handle cv-reference types.
  libpdx: Fix forward declarations using default template args.
  Add additional accessors to IonBuffer and BufferHubBuffer.
  Update BufferHubQueue in preparation for VrFlinger refactor.

7 years agolibpdx: Fix ThreadLocalBufferTest.InitialValue unittest
Alex Vakulenko [Fri, 7 Apr 2017 15:55:03 +0000 (08:55 -0700)]
libpdx: Fix ThreadLocalBufferTest.InitialValue unittest

A call to GetBuffer() has been inadvertently removed during code
upstreaming to master. See the BUG below for more details.

Bug: 36456321
Test: `pdx_tests` now succeed on Sailfish
Change-Id: Ic7d6ecbbd9b0e59e74b48a66a9e3701dc44695bc

7 years agoFix the latency model.
Okan Arikan [Thu, 6 Apr 2017 23:35:56 +0000 (16:35 -0700)]
Fix the latency model.

We were being too clever in modeling the latency using exponentially
moving average. The issue is that the average changes as new samples come in
which we then use to update the timestamps.

If the sampling rate is high enough (like IMU) then the changes in the average
are close to the delta times between samples. This causes the sample times
to move, and sometimes even change their updated timestamp order. This
causes all kinds of mess when we linearly extrapolate because the slope is bogus.

The fix is to just average a certain number of latency samples and then stick with that
constant average.

Bug: 36997591
Test: Run any 3DOF VR app.
Change-Id: I5411b2a6b7c3f258bf197f0615c0339d68fd2fd7

7 years agoMerge "Support halt the trace when schd-dbg hit deadline" into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 03:39:19 +0000 (03:39 +0000)]
Merge "Support halt the trace when schd-dbg hit deadline" into oc-dev

7 years agoMerge "Add option to list vndservicemanager services." into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 02:09:00 +0000 (02:09 +0000)]
Merge "Add option to list vndservicemanager services." into oc-dev

7 years agoMerge "vrwm: Handle intents launched by the VR app" into oc-dev
TreeHugger Robot [Fri, 7 Apr 2017 01:45:22 +0000 (01:45 +0000)]
Merge "vrwm: Handle intents launched by the VR app" into oc-dev

7 years agoMerge "libpdx_uds: Fix RPC channel ID allocation to not recycle values as often"...
TreeHugger Robot [Fri, 7 Apr 2017 01:07:57 +0000 (01:07 +0000)]
Merge "libpdx_uds: Fix RPC channel ID allocation to not recycle values as often" into oc-dev

7 years agoMerge changes from topics 'seinfo', 'public_dex' into oc-dev
Calin Juravle [Fri, 7 Apr 2017 00:23:43 +0000 (00:23 +0000)]
Merge changes from topics 'seinfo', 'public_dex' into oc-dev

* changes:
  Restore selinux labels for secondary dex oat directory
  Fix permission for public secondary dex files

7 years agovr_hwc: Address ion buffer leakage
Mark Urbanus [Thu, 6 Apr 2017 22:29:57 +0000 (15:29 -0700)]
vr_hwc: Address ion buffer leakage

Problem:
system is running out of memory while switching between apps back and forth.

Root-cause:
vr_hwc is leaking ion buffers by holding an unreleased reference.

Solution:
No need to register the buffer when getting buffer info. This removes the
additional (unreleased) reference on the buffer.

Test: Validated vr_hwc is no longer leaking ion buffers when switching
      apps.
Bug: 36449218

Change-Id: I1c1c5d2cca35c50a4bcbcf7b879d37914b8d835f

7 years agolibpdx_uds: Fix RPC channel ID allocation to not recycle values as often
Alex Vakulenko [Thu, 6 Apr 2017 21:51:54 +0000 (14:51 -0700)]
libpdx_uds: Fix RPC channel ID allocation to not recycle values as often

The value of channel ID for PDX service on UDS transport was actual file
descriptor value for the data socket. Since channels are open and closed
constantly, it is quite often that channel ID is being reused immediately,
so it is almost impossible to use `cid` as unique identifier for objects
being passed around.

Instead, we now use monotonically growing channel ID value.

To prevent the possibility of using channel ID as the socket FD and vice
versa, changed all helper functions that used to take socket_fd as an int
to explicitly use BorrowedHandle which disables implicit conversion from
int (and hence makes it impossible to mistakenly pass in the channel ID).

Bug: 37082296
Test: `m -j32` succeeds for sailfish-eng
      Ran libpdx_uds_tests on the device -> all pass
      Device boots and CubeSea and VrHome render correctly with vr_flinger

Change-Id: Ibb8dfee4d6c3f4b6120c0b6e20a253f1b9307c19

7 years agoMerge "vndservicemanager: use separate SELinux class." into oc-dev
TreeHugger Robot [Thu, 6 Apr 2017 22:06:36 +0000 (22:06 +0000)]
Merge "vndservicemanager: use separate SELinux class." into oc-dev

7 years agoRestore selinux labels for secondary dex oat directory
Calin Juravle [Wed, 5 Apr 2017 03:22:50 +0000 (20:22 -0700)]
Restore selinux labels for secondary dex oat directory

Bug: 36896515
Test: adb shell cmd package compile -r bg-dexopt --secondary-dex com.google.android.gms
      adb shell ls
/data/user_de/0/com.google.android.gms/app_chimera/m/0000000c/oat/arm64/
-Z
      youtube loads gms modules without extracting from apk

Change-Id: I4e12a6f532a1442a840e3ed8d01b98dd9a328eb6

7 years agoMerge changes I2f531131,Ibaaca2a1,Ib0cba4c7,I5ea748b8,I046e3f07, ... into oc-dev
TreeHugger Robot [Thu, 6 Apr 2017 21:51:17 +0000 (21:51 +0000)]
Merge changes I2f531131,Ibaaca2a1,Ib0cba4c7,I5ea748b8,I046e3f07, ... into oc-dev

* changes:
  libgui: Make IDisplayEventConn... a SafeInterface
  libgui: Remove RefBase from BitTube
  libgui: Make BitTube Parcelable and use unique_fd
  libgui: Format BitTube and move into gui namespace
  libgui: Move BitTube out of system include dir
  libgui: Normalize IDisplayEventConnection methods
  libgui: Format IDisplayEventConnection

7 years agovrwm: Handle intents launched by the VR app
Albert Chaulk [Thu, 6 Apr 2017 20:36:29 +0000 (16:36 -0400)]
vrwm: Handle intents launched by the VR app

This gives us the following cases
Same appid, vr mode = 1: normal use
Same appid, vr mode = 0: VR app 2D intent
Different appid, vr mode = 1: Switching apps
Different appid, vr mode = 0: 2D app

Bug: 37099690
Test: Manual with calculator and oobetest
Change-Id: I7ba6588fb80d4c8de4f1372d047682f1d5d54860

7 years ago(DO NOT MERGE) media: Add new OMX extension for setting latency.
Hangyu Kuang [Mon, 27 Feb 2017 22:30:39 +0000 (14:30 -0800)]
(DO NOT MERGE) media: Add new OMX extension for setting latency.

Test: Video Recording
Bug: 34221970
Change-Id: I525d86358f3f25a04ae0ac1a80461f8414e5a163
(cherry picked from commit 0c77369428af1e6baaf98a069aa2873bc4d3df1d)

7 years agovndservicemanager: use separate SELinux class.
Martijn Coenen [Thu, 6 Apr 2017 20:05:27 +0000 (13:05 -0700)]
vndservicemanager: use separate SELinux class.

For doing access control.

Bug: 36052864
Test: device boots
Change-Id: I263679ed4532ec52b1e64e5e60bdc064b7484073

7 years agolibgui: Make IDisplayEventConn... a SafeInterface
Dan Stoza [Mon, 3 Apr 2017 20:27:12 +0000 (13:27 -0700)]
libgui: Make IDisplayEventConn... a SafeInterface

Converts IDisplayEventConnection to be a SafeInterface such that all
parceling/unparceling is done automatically.

Test: libgui_test + SurfaceFlinger_test + manual testing
Change-Id: I2f5311315dc4fadbf3599f2b28f150097f53de57

7 years agolibgui: Remove RefBase from BitTube
Dan Stoza [Mon, 3 Apr 2017 20:09:08 +0000 (13:09 -0700)]
libgui: Remove RefBase from BitTube

Removes RefBase from BitTube, since because it is not a Binder object,
it doesn't need to be reference-counted in this way.

In the process, we rename IDisplayEventConnection::getDataChannel to
IDEC::stealReceiveChannel to make it clearer that this is a non-const
operation on the remote end that removes its access to the receive
channel.

This also adds a couple of methods for moving the receive file
descriptor out of one BitTube and into another, since this is the
essence of the IDisplayEventConnection::stealReceiveChannel method,
and now with C++11 move semantics, we can do this without needing to
return an sp<> from EventThread's implementation of stealReceiveChannel.

Test: m -j + manual testing
Change-Id: Ibaaca2a14fb6155052fe5434c14bc3e671b43743

7 years agolibgui: Make BitTube Parcelable and use unique_fd
Dan Stoza [Sat, 1 Apr 2017 00:10:06 +0000 (17:10 -0700)]
libgui: Make BitTube Parcelable and use unique_fd

This change completes the Parcelable interface for BitTube (it was
semi-Parcelable before as it implemented writeToParcel, but this adds
the complementary readFromParcel).

It also changes the send and receive file descriptors from ints to
android::base::unique_fds, which simplifies some of their lifecycle
management.

Finally, it changes the default constructor to leave the class
uninitialized, adding a BitTube(BitTube::DefaultSize) constructor to
replace that functionality (and paving the way for the ability to
default-construct a BitTube prior to readFromParcel'ing into it).

Test: m -j + manual testing
Change-Id: Ib0cba4c7c443b449a9a1837f07f7334395d4f10d

7 years agolibgui: Format BitTube and move into gui namespace
Dan Stoza [Fri, 31 Mar 2017 23:30:42 +0000 (16:30 -0700)]
libgui: Format BitTube and move into gui namespace

Reformats BitTube using the framework default .clang-format and moves
it into the android::gui namespace.

Test: m -j + manual testing
Change-Id: I5ea748b809f37c2ec4dcfb41e7b84daf7a084368

7 years agolibgui: Move BitTube out of system include dir
Dan Stoza [Fri, 31 Mar 2017 23:18:10 +0000 (16:18 -0700)]
libgui: Move BitTube out of system include dir

Moves the BitTube header out of the system include directory and into
libgui's include directory.

Test: m -j
Change-Id: I046e3f07ec4a58736c8de7ea7ba0f43a8e3e328b

7 years agolibgui: Normalize IDisplayEventConnection methods
Dan Stoza [Thu, 30 Mar 2017 23:37:19 +0000 (16:37 -0700)]
libgui: Normalize IDisplayEventConnection methods

This change modifies the IDisplayEventConnection API such that every
synchronous method returns a status_t (to be able to return transport
errors). This required changing getDataChannel to return its channel by
output parameter rather than return type.

Currently no more error messages are checked than before, but this will
both enable calling code to check error messages if it desires and,
more importantly, allow the Bp/Bn code to be semi-automatically
generated using SafeInterface.

Test: libgui_tests + manual testing
Change-Id: I8d5bc5ef0475cee07b638a97079b234f0384c022

7 years agolibgui: Format IDisplayEventConnection
Dan Stoza [Thu, 30 Mar 2017 23:09:13 +0000 (16:09 -0700)]
libgui: Format IDisplayEventConnection

Applies the framework default .clang-format and does a bit of tidying
up (reflowing comments to 100 characters, reordering includes, etc.).

Test: libgui_tests + manual testing
Change-Id: I8b3515339a93dbe42ce4421cb561b78ed2fe9104

7 years agoAdd missing functor for DVR API
Daniel Nicoara [Thu, 6 Apr 2017 17:46:31 +0000 (13:46 -0400)]
Add missing functor for DVR API

Missing initialization of functor.

Bug: 36050795
Test: Ran app using the DVR API and verified API is loaded correctly.
Change-Id: Ia2f7a6cb69e0be724ea0c67ce2d467f8605ec29b

7 years agoMerge "Use explicit .c_str() for hidl_string" into oc-dev
Scott Randolph [Thu, 6 Apr 2017 18:01:41 +0000 (18:01 +0000)]
Merge "Use explicit .c_str() for hidl_string" into oc-dev

7 years agoMerge "dvr_api GetExternalSurface returns ANativeWindow" into oc-dev
Jiwen Cai [Thu, 6 Apr 2017 17:54:38 +0000 (17:54 +0000)]
Merge "dvr_api GetExternalSurface returns ANativeWindow" into oc-dev

7 years agoifdef HWC2 functionality
Courtney Goeltzenleuchter [Thu, 6 Apr 2017 14:18:34 +0000 (08:18 -0600)]
ifdef HWC2 functionality

Fix build issue for devices that are not using HWC2.
Test: lunch hikey-userdebug; make

Change-Id: I47e9aa09b8db3f0dca6d733e2c8f3b59c45547b2

7 years agoFix permission for public secondary dex files
Calin Juravle [Wed, 5 Apr 2017 03:21:05 +0000 (20:21 -0700)]
Fix permission for public secondary dex files

- make the oat directory accessible by others
- if the dex files is readable by others and we are not doing a speed-
profile compilation make the oat file readable by others.

Bug: 36896515
Test: adb shell cmd package compile -r bg-dexopt  --secondary-dex com.google.android.gms
      check that the oat directory and files have the right permissions

Change-Id: I1829217004353fb8c86e5a6b7eb570555e36a495

7 years agoMerge "Check if a visible layer exists instead of an invisible layer exists" into...
TreeHugger Robot [Thu, 6 Apr 2017 15:38:39 +0000 (15:38 +0000)]
Merge "Check if a visible layer exists instead of an invisible layer exists" into oc-dev

7 years agoMerge "Make sure all HWC2 functionality is ifdef'd" into oc-dev
Marco Nelissen [Thu, 6 Apr 2017 14:39:28 +0000 (14:39 +0000)]
Merge "Make sure all HWC2 functionality is ifdef'd" into oc-dev

7 years agoMake sure all HWC2 functionality is ifdef'd
Courtney Goeltzenleuchter [Thu, 6 Apr 2017 14:18:34 +0000 (08:18 -0600)]
Make sure all HWC2 functionality is ifdef'd

Fix build issue for devices that are not using HWC2.
Test: lunch bat_land, make

Change-Id: If94222cd00f2c8b0b1f7a464ad0378224fc059e7

7 years agoMerge "VR: Remove HIDL VR Composer from service/vr/vr_window_manager" into oc-dev
Daniel Nicoara [Thu, 6 Apr 2017 13:47:26 +0000 (13:47 +0000)]
Merge "VR: Remove HIDL VR Composer from service/vr/vr_window_manager" into oc-dev

7 years agoMerge "lshal --init-vintf stripped <impl> tag." into oc-dev
Yifan Hong [Thu, 6 Apr 2017 06:23:16 +0000 (06:23 +0000)]
Merge "lshal --init-vintf stripped <impl> tag." into oc-dev

7 years agoFix build error with configstore
Courtney Goeltzenleuchter [Thu, 6 Apr 2017 00:34:30 +0000 (18:34 -0600)]
Fix build error with configstore

CL I2c0895f8afbbb2947b62164acaf62a491c451dc0 made it necessary
to include android.hardware.configstore-utils as a shared library.
Was causing build error that looked like:
ninja: error:
'out/target/product/generic_x86_64/obj/HEADER_LIBRARIES/android.hardware.configstore-utils_intermediates/export_includes',
needed by
'out/target/product/generic_x86_64/obj/NATIVE_TESTS/EGL_test_intermediates/import_includes',
missing and no known rule to make it
23:25:54 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

Happened in tests directory which doesn't get built by default.

Test: build opengl/tests
Change-Id: I2c731c4e1b23888edd67fd9311b797fba61c011f

7 years agoMerge "Set sensor operation parameter implementation" into oc-dev
Peng Xu [Thu, 6 Apr 2017 00:00:07 +0000 (00:00 +0000)]
Merge "Set sensor operation parameter implementation" into oc-dev

7 years agoFix soong dependency issue
Courtney Goeltzenleuchter [Wed, 5 Apr 2017 21:51:24 +0000 (15:51 -0600)]
Fix soong dependency issue

Test: make

Change-Id: I3ea00a32f08395c81e44625603d878a2f1b6975b

7 years agoMerge changes I9da985a7,I2bd642aa,I9358b3c9,I9d3c60b1 into oc-dev
Courtney Goeltzenleuchter [Wed, 5 Apr 2017 22:23:11 +0000 (22:23 +0000)]
Merge changes I9da985a7,I2bd642aa,I9358b3c9,I9d3c60b1 into oc-dev

* changes:
  Add test for FP16 surface support
  Dump info about wide-color
  Add wide-color support to SurfaceFlinger
  Add debug string functions for graphics.h enums

7 years agoCheck if a visible layer exists instead of an invisible layer exists
Albert Chaulk [Wed, 5 Apr 2017 22:01:58 +0000 (18:01 -0400)]
Check if a visible layer exists instead of an invisible layer exists

Multiple layers may exist at index 0 and what we really want to know
is if any of them are active, not if any aren't.

Bug: 3686718636036583
Test: Launch ithaca then youtube
Change-Id: I5881a838c7df8670fa42eece558717140d4cb021

7 years agoMerge "vrwm: Also recenter the controller when should_recenter_ is set" into oc-dev
Albert Chaulk [Wed, 5 Apr 2017 22:12:14 +0000 (22:12 +0000)]
Merge "vrwm: Also recenter the controller when should_recenter_ is set" into oc-dev

7 years agoAdd option to list vndservicemanager services.
Martijn Coenen [Wed, 5 Apr 2017 21:16:12 +0000 (14:16 -0700)]
Add option to list vndservicemanager services.

Test: adb shell service list -v
Bug: 36987120
Change-Id: I081a0c725ddb4175f4ab43714c25cc41ed2239a3

7 years agoMerge "Strip VR daemon binaries." into oc-dev
TreeHugger Robot [Wed, 5 Apr 2017 20:52:08 +0000 (20:52 +0000)]
Merge "Strip VR daemon binaries." into oc-dev

7 years agoMerge "dumpstate: don't read /proc/interrupts" into oc-dev
TreeHugger Robot [Wed, 5 Apr 2017 18:58:19 +0000 (18:58 +0000)]
Merge "dumpstate: don't read /proc/interrupts" into oc-dev

7 years agoStrip VR daemon binaries.
Nick Bray [Wed, 5 Apr 2017 18:45:08 +0000 (11:45 -0700)]
Strip VR daemon binaries.

Stripping was suppressed to assist debugging, but this adds 24+ MB to
release builds.

Bug: none
Test: manual
Change-Id: Ic2a866930cebb67af052b6665af2631b131601ae

7 years agoMerge changes I1ed97f98,I32449355,I5c84d6f2,Ib9652278,I73deaa44 into oc-dev
TreeHugger Robot [Wed, 5 Apr 2017 18:05:44 +0000 (18:05 +0000)]
Merge changes I1ed97f98,I32449355,I5c84d6f2,Ib9652278,I73deaa44 into oc-dev

* changes:
  libgui: Make IConsumerListener a SafeInterface
  libgui: Format IConsumerListener
  libbinder: Support Flattenable in SafeInterface
  libgui: Add missing FenceTime header to GLConsumer
  libgui: Fix naming/enums in ISurfaceComposerClient

7 years agoMerge "dumpstate: add dropbox crashes to bugreport" into oc-dev
Adrian Roos [Wed, 5 Apr 2017 18:02:51 +0000 (18:02 +0000)]
Merge "dumpstate: add dropbox crashes to bugreport" into oc-dev

7 years agoMerge "Use Configstore to test getWideColor function" into oc-dev
TreeHugger Robot [Wed, 5 Apr 2017 17:35:46 +0000 (17:35 +0000)]
Merge "Use Configstore to test getWideColor function" into oc-dev

7 years agodumpstate: add dropbox crashes to bugreport
Adrian Roos [Tue, 4 Apr 2017 23:35:44 +0000 (16:35 -0700)]
dumpstate: add dropbox crashes to bugreport

Adds system crashes from the dropbox to the end of the bugreport
to allow diagnosing issues even after the device has rebooted.

Test: adb bugreport
Bug: 36852229
Bug: 26849505
Change-Id: I11589b81208e916d25d543c43c1283bdbffda949

7 years agoMake init process create PDX sockets for services
Alex Vakulenko [Fri, 24 Mar 2017 00:45:40 +0000 (17:45 -0700)]
Make init process create PDX sockets for services

To help us control the creation of PDX sockets and properly labeling
them for SELinux, let the init process create sockets for us based on
the settings specified in .rc files for service processes.

For (test) services that are meant to be started manually from command
line (e.g. test services), keep the old functionality as an option so
that UDS endpoint can be created in a way that it automatically creates
the socket in the service itself.

Bug: 35220925
Test: `m -j32` succeeds. Ran sailfish in VR mode and made sure all the
      services (surfaceflinger, performanced, sensord, bufferhub).
      `m -j32 checkbuild` succeeds as well.

Change-Id: Ief733b41b534cea19b1bea31de76b06051aa50ab

7 years agoAdd test for FP16 surface support
Courtney Goeltzenleuchter [Tue, 28 Mar 2017 23:29:52 +0000 (17:29 -0600)]
Add test for FP16 surface support

Test: adb shell /data/nativetest/EGL_test/EGL_test
      adb shell /system/bin/test-opengl-gl_basic # look for RED_SIZE: of 16.
Bug: 29940137

Change-Id: I9da985a7574d3582b06cf55bc02515db0869505a

7 years agoDump info about wide-color
Courtney Goeltzenleuchter [Mon, 27 Mar 2017 18:18:12 +0000 (12:18 -0600)]
Dump info about wide-color

Test: adb shell dumpsys SurfaceFlinger
      Look for section titled "Wide-Color information:"
Bug: 29940137

Change-Id: I2bd642aa026b49bbb9effd5cb1687c7a36dae684

7 years agoAdd wide-color support to SurfaceFlinger
Courtney Goeltzenleuchter [Wed, 22 Mar 2017 19:46:46 +0000 (13:46 -0600)]
Add wide-color support to SurfaceFlinger

Test: manual testing
Bug: 29940137

Change-Id: I9358b3c982e0205e598fd20cbf8d2e956591b3ac

7 years agoAdd debug string functions for graphics.h enums
Courtney Goeltzenleuchter [Wed, 22 Mar 2017 19:09:12 +0000 (13:09 -0600)]
Add debug string functions for graphics.h enums

Test: see dataspace and colormode details when running with debug
Bug: 29940137

Change-Id: I9d3c60b1f9c71c44aba475450c7f867dcd68627e

7 years agoUse Configstore to test getWideColor function
Courtney Goeltzenleuchter [Mon, 13 Mar 2017 20:30:00 +0000 (14:30 -0600)]
Use Configstore to test getWideColor function

Test: make tests in libs/gui/tests/
Test: adb sync
Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter="SurfaceTest.GetWideColorSupport"
Bug: 29940137

Change-Id: I618c300b1882d2ebd7474586d72f4d469e2d41bf

7 years agoSupport halt the trace when schd-dbg hit deadline
Howard Chen [Tue, 28 Mar 2017 09:05:11 +0000 (17:05 +0800)]
Support halt the trace when schd-dbg hit deadline

Usage:

start atrace as usual:
>atrace --async_start sched freq ...

then use schd-dbg with -trace arguments
./schd-dbg -trace -deadline_us 2500

This makes schd-dbg to stop trace once it detects a transaction
duration over the deadline. By writing '0' to
/sys/kernel/debug/tracing and halt the process. The tracelog is
then available on /sys/kernel/debug/trace

Bug: b/36669012
Test: sailfish with prebuilt kernel
Change-Id: I9f81109cd22705f070f3f78ddf3539b8fa1f9973
(cherry picked from commit f682b13716006d0f41c13a26e34f3592ff28d1cc)

7 years agolibpdx: Decay variant types to correctly handle cv-reference types.
Corey Tabaka [Mon, 3 Apr 2017 19:01:31 +0000 (12:01 -0700)]
libpdx: Decay variant types to correctly handle cv-reference types.

Decay the types used internally for storage in Variant and update
type matching logic to handle the decayed types.

Bug: 36401174
Test: build; pdx_tests passes.
Change-Id: I93c68cce47d6f7d195b901afe3e63685befc08fe

7 years agolibpdx: Fix forward declarations using default template args.
Corey Tabaka [Mon, 27 Mar 2017 23:41:20 +0000 (16:41 -0700)]
libpdx: Fix forward declarations using default template args.

The default expression for the template argument should be part of
the forward declaration rather than the defintion to properly resolve
overloads with nested types that use Serializable.

Bug: 36401174
Test: build; run pdx tests
Change-Id: I520750cdd86bc3141084fbe62412e13635fc7d7b

7 years agoAdd additional accessors to IonBuffer and BufferHubBuffer.
Corey Tabaka [Tue, 4 Apr 2017 18:07:05 +0000 (11:07 -0700)]
Add additional accessors to IonBuffer and BufferHubBuffer.

- Add accessor to underlying GraphicBuffer in IonBuffer.
- Add const accessors to underlying IonBuffer(s) in BufferHubBuffer.

Bug: 36401174
Test: bufferhub_tests; buffer_hub_queue-test
Change-Id: I24a6c19b141bb50ffa06e861a4533e10d55b5b20

7 years agoUpdate BufferHubQueue in preparation for VrFlinger refactor.
Corey Tabaka [Wed, 22 Mar 2017 09:12:52 +0000 (02:12 -0700)]
Update BufferHubQueue in preparation for VrFlinger refactor.

- Expose buffer hub queue id to the client. This helpful as an id
  in queue enumeration in the DisplayManager API.
- Address log convention deviations.
- Clean up BufferHub service error paths.
- Clean up queue importing logic to query the service for queue
  parameters to avoid accidental abuse.
- Make spawning consumer queues more efficient in RPC only cases.
- Clean up ConsumerQueue constructor logic; move to pdx::Client
  base class (through BufferHubQueue) instead of pdx::ClientBase.
  ConsumerQueue::Create doesn't make sense as a ConsumerQueue can
  only be created from another queue.

Bug: 36401174
Test: build; run buffer_hub_queue-test
Change-Id: I0530f64ecb514d0f37bb13f9ce201b6ff51502b6

7 years agoimport configstore-utils as a shared library.
Jaesoo Lee [Thu, 30 Mar 2017 06:25:19 +0000 (15:25 +0900)]
import configstore-utils as a shared library.

android.hardware.configstore-utils is now built as a shared library.

Bug: 36275627
Test: Built and check the boot log messages
Change-Id: I44b0f6a69e267f670380e18a37a519bb2ef1ee84

7 years agoimport configstore-utils as a shared library.
Jaesoo Lee [Thu, 30 Mar 2017 06:24:15 +0000 (15:24 +0900)]
import configstore-utils as a shared library.

android.hardware.configstore-utils is now built as a shared library.

Bug: 36275627
Test: Built and check the boot log messages
Change-Id: I83ccebcad8005f39ca8534477d7cd3f69a2041aa

7 years agoMerge "Remove useless GraphicBuffer() constructor" into oc-dev
Mathias Agopian [Wed, 5 Apr 2017 00:42:52 +0000 (00:42 +0000)]
Merge "Remove useless GraphicBuffer() constructor" into oc-dev

7 years agodvr_api GetExternalSurface returns ANativeWindow
Jiwen 'Steve' Cai [Tue, 4 Apr 2017 22:02:04 +0000 (15:02 -0700)]
dvr_api GetExternalSurface returns ANativeWindow

Now that we have a public NDK API to convert an ANativeWindow to a Java
Surface, we no longer need to mess with Jni and libandroid_runtime in
libdvr.

See more information at:
http://ag/#/q/topic:ANativeWindow_toSurface+(status:open+OR+status:merged)

Also, as a side effect, we are now free to convert this library to use
Android.bp (though we probably want to hold off for a while).

Bug: 36266201
Test: Built and ran dvr_buffer_queue-test
Change-Id: Ia0f6a8735c7d508195c30e3c7d040791e13a6ce3

7 years agolibgui: Make IConsumerListener a SafeInterface
Dan Stoza [Wed, 29 Mar 2017 00:05:13 +0000 (17:05 -0700)]
libgui: Make IConsumerListener a SafeInterface

Converts IConsumerListener to be a SafeInterface such that all
parceling/unparceling is done automatically.

Test: libgui_tests + manual testing
Change-Id: I1ed97f9802e320662cd29e181539ce839ffe0f3f

7 years agolibgui: Format IConsumerListener
Dan Stoza [Tue, 28 Mar 2017 20:55:48 +0000 (13:55 -0700)]
libgui: Format IConsumerListener

Applies the framework default .clang-format and does a bit of tidying
up (reflowing comments to 100 characters, reordering includes, etc.).

Test: libgui_tests + manual testing
Change-Id: I324493551bca5a6c6a011cbe773021236e11e992