Sending a null hidl_string from native code to Java is currently not
a supported operation and will cause a crash. As originally written,
shallowCopy would set a hidl_string to null as soon as a non-empty
stringValue was followed by an empty stringValue. Since freeze frames
come with a string value (the DTC) and live frames doesn't, this would
cause all diagnostics to crash while reading VehiclePropValue from parcel
immediately after dispatching a freeze frame. Fix by resetting empty strings
to a global non-null but zero length buffer.
Bug: 37435530
Test: diagnostic_injector.py
Change-Id: Ie79174dd7ab3d266f1e3addefa5ba9e2128ea9f8
Right now there's no way to distinguish multiple clients, thus we cannot
associate IVehicleCallback from subscribe and unsubscribe method. As a
temporary solution we will use pointer to IBinder from underlying proxy
object until HILD will have some API to do that.
Test: verified unit tests run, checked that subsequent 'subscribe' calls
do not create new client objects in VHAL
Bug: b/37254245
Change-Id: I029564b7b03e4821287c2110d0929a5c4cbce0ce
This property is supposed to be used mostly from e2e tests (a simple
test-case is provided in separate CL)
Test: make -j && runtest -x packages/services/Car/tests/vehiclehal_test/
Bug: b/36510399
Change-Id: I09b24f22ab328eee1ef6add60901ed03bf046874
This fixes an issue where the default freeze frame data was not seen
by the diagnostic manager as it was never correctly stored in the database.
Test: manual in KitchenSink
Bug: 37327195
Change-Id: Ice33d8571daa52ae758ff2ac9926b6ea0b3a495c
Revise IAllocator and IMapper to reduce IPC and to support gralloc0
devices.
Specifically, IAllocator is trimmed down to have essentially only
allocate(BufferDescriptor descriptor, uint32_t count)
generates (Error error,
uint32_t stride,
vec<handle> buffers);
The ability to allocate buffers with shared backing store is
removed. ProducerUsage and ConsumerUsage are moved to the
graphics.common package and are merged and renamed to BufferUsage.
BufferUsage's bits follow gralloc0.
IMapper gains
typedef vec<uint32_t> BufferDescriptor;
createDescriptor(BufferDescriptorInfo descriptorInfo)
generates (Error error,
BufferDescriptor descriptor);
where BufferDescriptor is an implementation-defined blob. lockFlex
is replaced by lockYCbCr. All getters are removed.
Reference counting with retain/release is replaced by
importBuffer/freeBuffer.
Most if not all gralloc1 features are not used by the runtime yet.
There is also not too much test written for them. As such, they
tend to behave differently between implementations and cannot be
used reliably.
Bug: 36481301
Test: builds and boots on Pixel
Change-Id: I1d31105120517ea2c128c7a19297acf3bfd312bb
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
Also rename DefaultVehicleHal to EmulatedVehicleHal and
extract emulator related code to VehicleEmulator class
Test: mm -j32 ; verified Car Service worked
Change-Id: I34361fdec6f94629cf7ef6c35ff56ef9ce78b855
Move default values closer to config declration to add properties
with less pain in future.
Test: mm -j32; verified if Car Service works
(cherry picked from commit 24ade17518)
Merged-In: I2f18837658149eb657f44d81e34eb8e6e497a25c
Change-Id: Ie4285581fa9d871b366b0ed2f08fa8073739a0a9
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
Also, removed per property ACL as it was based on client UID
Test: mm -j ; verified Car Service works
Bug: b/36649684
Change-Id: I7625a013dda8e3ebce5b86a253a8c1befe267c11
(cherry picked from commit 72aebeb3ec)
Note: This change list was developed as ag/2031642 on master, but
cherry picks are broken at the moment, so reapplying directly to oc-dev.
The change in master will be abandoned in favor of the auto-merger.
Test: Run them against the default (mock) driver on bat_land
Change-Id: I7ae523eb6a18ce6a1d0dcd8494f335ffa77f34f1
This adapts the API implementation to allow a duplicate "open" operation
to automatically close any previous connections to the device. This
works around a binder level issue that can cause destructors triggered
by remote clients to be delivered out of order to the server.
This was originally change ag/1969959 on master, but has been
recreated on oc-dev (cherry-picking was broken at the time).
The original master change will be abandoned in favor of this getting
merged down from oc-dev.
Test: Run Vts test (added in following change)
Change-Id: I7b417998e59a4d592fbb91811c4101f39097c5dd
Move default values closer to config declration to add properties
with less pain in future.
Test: mm -j32; verified if Car Service works
Change-Id: I2f18837658149eb657f44d81e34eb8e6e497a25c