This CL avoids passing nullptr to underlying HAL and cause
SEGFAULT.
Bug: 37589989
Test: compiles and VTS passing
Change-Id: Ic44409e64466e54a3a3027721897c0755ba34fc7
Vts polls sensor events with max size of 1, which can cause
performance issue when batching. Increase it to 64 to help eliminate
potential performance issue.
Note this CL has no change in behavior of test.
Test: VTS target test pass on several devices
Change-Id: I04a6791f407ec0a54eb6cd8df4d4ef41e8a89c12
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.
Test: links
Bug: 33276472
Merged-In: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
Change-Id: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
Missing dependency that was being transitively included
from MQDescriptor.h.
Test: links
Bug: 37791060
Change-Id: I5afca1596c83801a49ee0aead85499a5241608e0
(cherry picked from commit 5b42945e6a)
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.
Test: links
Bug: 33276472
Change-Id: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
Missing dependency that was being transitively included
from MQDescriptor.h.
Test: links
Bug: 37791060
Change-Id: I5afca1596c83801a49ee0aead85499a5241608e0
Moving sensor hal service to hal class.
Bug: 36576271
Test: Ensure that sensors still stream.
Change-Id: I1ab984063c48401ee535b9be4df75d554d91578f
(cherry picked from commit 5d0b2e7c37)
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 android.hardware.sensors@1.0-convert
Test: attempt to compile with BOARD_VNDK_VERSION := current
Change-Id: I0a4e8a658b5b33bd7a6668242f98a4f6cda2a94f
Files relying on transitive include of utils/Log.h (and things that it
includes) from MQDescriptor.h
Test: pass
Merged-In: Iff316b21bef556bb026378b7f89e97ded3febef4
Change-Id: Iff316b21bef556bb026378b7f89e97ded3febef4
Files relying on transitive include of utils/Log.h (and things that it
includes) from MQDescriptor.h
Test: pass
Change-Id: Iff316b21bef556bb026378b7f89e97ded3febef4
hidl_string no longer will provide an implicit cast to const char* as it
interfers with other expected behaviors of the class. It now emulated
std::string in requiring a call to .c_str() to get the same behavior.
Bug: 36532780
Test: Build the tree
Change-Id: I265590c7c18f425e44863df062a56b67519a932a
Bug: 36580454
Test: unlock watch with LLOB sensor and verify no SensorService crash
Change-Id: Ib1d086efd80e829bb844521fa39325f095b1c2c9
Signed-off-by: Ben Fennema <fennema@google.com>
This has been copy pasted and isn't actually required.
Test: all hals manually tested to work on internal marlin (which have them binderized).
Note: tv hals not tested (and they never have been). Filed b/36562029
Note: for thermal hal, could only run VTS/check logs for errors.
Test: lshal outputs proper stuff
Fixes: 31928447
Change-Id: Id1be584dc0fa2d70e9189b922335146bf6d1382d
Add gating condition before calling the hal function pointers for
set_mode and inject_sensor_data.
Bug: 36073404
Test: compiles
Change-Id: I9c194c1a286fb64304b4329f43c3de2a3d6ae939
* Less suceptible to lingering sensor activation before system
restarts.
* Covers injectSensorEvent and setOperationMode API
* More test cases to test various operation conditions.
Bug: 32022776
Bug: 33618936
Test: vts-tradefed run commandAndExit vts --module VtsHalSensorsV1_0Target
Change-Id: I75f585a373880e831f511784a856d322077c07c0
Log(FATAL) is creating lots of nuisance bugs.
Test: Sensor service continues to recover from a system server
restart and sensors are available.
No crash log is created.
Bug: 36094522
Bug: 36115683
Change-Id: Idc2d086709dc2132c98aab806aa44728fbdaa189
Sensor hidl service has two threads quota. One is used for sending
commands down to hardware, and the other for retrieving sensor events
from hardware. The second is usually blocked on poll().
When system server quits abnormaly, the poll thread may still be
blocked in HAL implementation and holding that thread. There won't be
enough available threads for framework sensor service to function
correctly when system service restarts, resulting in a deadlock at
enableSensor() or getService() until the hidl service is restarted.
This fix detects a second connection from framework sensor service
and kills the hidl service in case that happens. The system will restart
the hidl service with clean state and return system to normal operation.
Bug: 35727090
Bug: 35843387
Bug: 35702298
Bug: 35919167
Bug: 35848670
Bug: 35903635
Test: Restart device works in normal case.
Restart also works with the following scenario (reproducing error)
"adb root && adb shell dumpsys sensorservice restrict random &&
adb shell stop && adb shell start"
Change-Id: Ibffa87d93b2d24af2803be9281e7141d0a221e3e