Merge "Update .vts files on master based on the latest .hal file and hidl-gen"
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 0000000..962f6cd
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,50 @@
+# Copyright 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/hw/android.hardware*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/hw/android.hardware*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/hw/android.hardware*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/android.hardware*)
diff --git a/audio/2.0/default/Android.mk b/audio/2.0/default/Android.mk
index cbeda35..9cb56c7 100644
--- a/audio/2.0/default/Android.mk
+++ b/audio/2.0/default/Android.mk
@@ -19,6 +19,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.audio@2.0-impl
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_SRC_FILES := \
Conversions.cpp \
Device.cpp \
@@ -55,6 +56,7 @@
LOCAL_MODULE := android.hardware.audio@2.0-service
LOCAL_INIT_RC := android.hardware.audio@2.0-service.rc
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_SRC_FILES := \
service.cpp
diff --git a/audio/2.0/default/android.hardware.audio@2.0-service.rc b/audio/2.0/default/android.hardware.audio@2.0-service.rc
index 0a5bfc5..eeaf71b 100644
--- a/audio/2.0/default/android.hardware.audio@2.0-service.rc
+++ b/audio/2.0/default/android.hardware.audio@2.0-service.rc
@@ -1,4 +1,4 @@
-service audio-hal-2-0 /system/bin/hw/android.hardware.audio@2.0-service
+service audio-hal-2-0 /vendor/bin/hw/android.hardware.audio@2.0-service
class hal
user audioserver
# media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
diff --git a/audio/effect/2.0/default/Android.mk b/audio/effect/2.0/default/Android.mk
index 18076ed..1541d41 100644
--- a/audio/effect/2.0/default/Android.mk
+++ b/audio/effect/2.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.audio.effect@2.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
AcousticEchoCancelerEffect.cpp \
diff --git a/automotive/vehicle/2.0/default/Android.mk b/automotive/vehicle/2.0/default/Android.mk
index e822044..c394f2e 100644
--- a/automotive/vehicle/2.0/default/Android.mk
+++ b/automotive/vehicle/2.0/default/Android.mk
@@ -125,6 +125,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := $(module_prefix)-service
LOCAL_INIT_RC := $(module_prefix)-service.rc
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
diff --git a/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc b/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc
index 1ee4d47..30e249e 100644
--- a/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc
+++ b/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc
@@ -1,4 +1,4 @@
-service vehicle-hal-2.0 /system/bin/hw/android.hardware.automotive.vehicle@2.0-service
+service vehicle-hal-2.0 /vendor/bin/hw/android.hardware.automotive.vehicle@2.0-service
class hal
user vehicle_network
group system inet
diff --git a/automotive/vehicle/2.0/types.hal b/automotive/vehicle/2.0/types.hal
index fa432f4..68a8a17 100644
--- a/automotive/vehicle/2.0/types.hal
+++ b/automotive/vehicle/2.0/types.hal
@@ -1764,7 +1764,7 @@
* Its contents are to be interpreted as follows:
* the indices defined in VmsMessageIntegerValuesIndex are to be used to
* read from int32Values;
- * stringValue is a serialized VMS message as defined in the vms protocol
+ * bytes is a serialized VMS message as defined in the vms protocol
* which is opaque to the framework;
*
* @change_mode VehiclePropertyChangeMode:ON_CHANGE
@@ -3203,11 +3203,14 @@
*/
enum VmsMessageIntegerValuesIndex : int32_t {
/* The message type as enumerated by VmsMessageType enum. */
- VMS_MESSAGE_TYPE = 1,
+ VMS_MESSAGE_TYPE = 0,
/* The layer ID as defined in the vms protocol. */
- VMS_LAYER_ID = 2,
+ VMS_LAYER_ID = 1,
/* The version of the VMS layer. */
- VMS_LAYER_VERSION = 3,
+ VMS_LAYER_VERSION = 2,
+
+ /* The number of bytes in the payload */
+ VMS_PAYLOAD_SIZE_BYTES = 3,
};
diff --git a/biometrics/fingerprint/2.1/default/Android.mk b/biometrics/fingerprint/2.1/default/Android.mk
index e5c79fe..ea20130 100644
--- a/biometrics/fingerprint/2.1/default/Android.mk
+++ b/biometrics/fingerprint/2.1/default/Android.mk
@@ -3,6 +3,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.1-service
LOCAL_INIT_RC := android.hardware.biometrics.fingerprint@2.1-service.rc
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
BiometricsFingerprint.cpp \
diff --git a/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc b/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc
index 3de52ad..aa767a6 100644
--- a/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc
+++ b/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc
@@ -1,4 +1,4 @@
-service fps_hal /system/bin/hw/android.hardware.biometrics.fingerprint@2.1-service
+service fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service
# "class hal" causes a race condition on some devices due to files created
# in /data. As a workaround, postpone startup until later in boot once
# /data is mounted.
diff --git a/bluetooth/1.0/default/vendor_interface.cc b/bluetooth/1.0/default/vendor_interface.cc
index 7f14e68..7737dd2 100644
--- a/bluetooth/1.0/default/vendor_interface.cc
+++ b/bluetooth/1.0/default/vendor_interface.cc
@@ -414,6 +414,7 @@
hci_packet_.data() + preamble_size_for_type[hci_packet_type_] +
hci_packet_bytes_read_,
hci_packet_bytes_remaining_));
+ CHECK(bytes_read > 0);
hci_packet_bytes_remaining_ -= bytes_read;
hci_packet_bytes_read_ += bytes_read;
if (hci_packet_bytes_remaining_ == 0) {
diff --git a/bluetooth/1.0/vts/functional/bluetooth_hidl_hal_test.cpp b/bluetooth/1.0/vts/functional/bluetooth_hidl_hal_test.cpp
index 683029e..eb1cdc1 100644
--- a/bluetooth/1.0/vts/functional/bluetooth_hidl_hal_test.cpp
+++ b/bluetooth/1.0/vts/functional/bluetooth_hidl_hal_test.cpp
@@ -122,9 +122,9 @@
virtual void SetUp() override {
// currently test passthrough mode only
bluetooth = IBluetoothHci::getService();
+ ASSERT_NE(bluetooth, nullptr);
ALOGW("%s: getService() for bluetooth is %s", __func__,
bluetooth->isRemote() ? "remote" : "local");
- ASSERT_NE(bluetooth, nullptr);
bluetooth_cb = new BluetoothHciCallbacks(*this);
ASSERT_NE(bluetooth_cb, nullptr);
diff --git a/boot/1.0/default/Android.mk b/boot/1.0/default/Android.mk
index be67779..99a6cf9 100644
--- a/boot/1.0/default/Android.mk
+++ b/boot/1.0/default/Android.mk
@@ -3,6 +3,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.boot@1.0-impl
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_SRC_FILES := \
BootControl.cpp \
@@ -19,6 +20,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.boot@1.0-service
LOCAL_INIT_RC := android.hardware.boot@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/boot/1.0/default/android.hardware.boot@1.0-service.rc b/boot/1.0/default/android.hardware.boot@1.0-service.rc
index 67d400b..ef5dd91 100644
--- a/boot/1.0/default/android.hardware.boot@1.0-service.rc
+++ b/boot/1.0/default/android.hardware.boot@1.0-service.rc
@@ -1,4 +1,4 @@
-service boot-hal-1-0 /system/bin/hw/android.hardware.boot@1.0-service
+service boot-hal-1-0 /vendor/bin/hw/android.hardware.boot@1.0-service
class hal
user root
group root
diff --git a/broadcastradio/1.0/default/Android.mk b/broadcastradio/1.0/default/Android.mk
index 734a0e1..569291e 100644
--- a/broadcastradio/1.0/default/Android.mk
+++ b/broadcastradio/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.broadcastradio@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
BroadcastRadio.cpp \
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index f37c45b..0f3d97b 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -194,9 +194,9 @@
mRelease(mDevice, handle);
} else {
mModule->unregisterBuffer(mModule, handle);
- native_handle_close(handle);
- native_handle_delete(const_cast<native_handle_t*>(handle));
}
+ native_handle_close(handle);
+ native_handle_delete(const_cast<native_handle_t*>(handle));
}
// gralloc1
diff --git a/camera/provider/2.4/default/Android.bp b/camera/provider/2.4/default/Android.bp
index e29f62c..e0ae12f 100644
--- a/camera/provider/2.4/default/Android.bp
+++ b/camera/provider/2.4/default/Android.bp
@@ -1,5 +1,6 @@
cc_library_shared {
name: "android.hardware.camera.provider@2.4-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["CameraProvider.cpp"],
shared_libs: [
@@ -24,6 +25,7 @@
cc_binary {
name: "android.hardware.camera.provider@2.4-service",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["service.cpp"],
compile_multilib: "32",
diff --git a/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc b/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc
index 31f0810..192870b 100644
--- a/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc
+++ b/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc
@@ -1,4 +1,4 @@
-service camera-provider-2-4 /system/bin/hw/android.hardware.camera.provider@2.4-service
+service camera-provider-2-4 /vendor/bin/hw/android.hardware.camera.provider@2.4-service
class hal
user cameraserver
group audio camera input drmrpc
diff --git a/configstore/1.0/default/Android.mk b/configstore/1.0/default/Android.mk
index 5de3451..116126d 100644
--- a/configstore/1.0/default/Android.mk
+++ b/configstore/1.0/default/Android.mk
@@ -3,6 +3,7 @@
################################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.configstore@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_RELATIVE_PATH := hw
@@ -22,6 +23,7 @@
################################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.configstore@1.0-service
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_INIT_RC := android.hardware.configstore@1.0-service.rc
diff --git a/configstore/1.0/default/android.hardware.configstore@1.0-service.rc b/configstore/1.0/default/android.hardware.configstore@1.0-service.rc
index 2e303b0..8741bdd 100644
--- a/configstore/1.0/default/android.hardware.configstore@1.0-service.rc
+++ b/configstore/1.0/default/android.hardware.configstore@1.0-service.rc
@@ -1,4 +1,4 @@
-service configstore-hal-1-0 /system/bin/hw/android.hardware.configstore@1.0-service
+service configstore-hal-1-0 /vendor/bin/hw/android.hardware.configstore@1.0-service
class hal
user system
group system
diff --git a/contexthub/1.0/default/Android.bp b/contexthub/1.0/default/Android.bp
index 7c5f79d..0e1dc77 100644
--- a/contexthub/1.0/default/Android.bp
+++ b/contexthub/1.0/default/Android.bp
@@ -16,6 +16,7 @@
cc_library_shared {
name: "android.hardware.contexthub@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Contexthub.cpp"],
shared_libs: [
diff --git a/contexthub/1.0/default/Android.mk b/contexthub/1.0/default/Android.mk
index ad40878..cc36b7f 100644
--- a/contexthub/1.0/default/Android.mk
+++ b/contexthub/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.contexthub@1.0-service
LOCAL_INIT_RC := android.hardware.contexthub@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/contexthub/1.0/default/android.hardware.contexthub@1.0-service.rc b/contexthub/1.0/default/android.hardware.contexthub@1.0-service.rc
index 8dba85f..5677ec2 100644
--- a/contexthub/1.0/default/android.hardware.contexthub@1.0-service.rc
+++ b/contexthub/1.0/default/android.hardware.contexthub@1.0-service.rc
@@ -1,4 +1,4 @@
-service contexthub-hal-1-0 /system/bin/hw/android.hardware.contexthub@1.0-service
+service contexthub-hal-1-0 /vendor/bin/hw/android.hardware.contexthub@1.0-service
class hal
user system
group system
diff --git a/drm/1.0/default/Android.mk b/drm/1.0/default/Android.mk
index ac5b90a..ea6cca0 100644
--- a/drm/1.0/default/Android.mk
+++ b/drm/1.0/default/Android.mk
@@ -21,6 +21,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.drm@1.0-service
LOCAL_INIT_RC := android.hardware.drm@1.0-service.rc
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
service.cpp \
@@ -48,6 +49,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.drm@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
DrmFactory.cpp \
diff --git a/drm/1.0/default/android.hardware.drm@1.0-service.rc b/drm/1.0/default/android.hardware.drm@1.0-service.rc
index 281dc4b..e7beca3 100644
--- a/drm/1.0/default/android.hardware.drm@1.0-service.rc
+++ b/drm/1.0/default/android.hardware.drm@1.0-service.rc
@@ -1,4 +1,4 @@
-service drm-hal-1-0 /system/bin/hw/android.hardware.drm@1.0-service
+service drm-hal-1-0 /vendor/bin/hw/android.hardware.drm@1.0-service
class hal
user media
group mediadrm drmrpc
diff --git a/dumpstate/1.0/default/Android.mk b/dumpstate/1.0/default/Android.mk
index 0b15184..ed9ef97 100644
--- a/dumpstate/1.0/default/Android.mk
+++ b/dumpstate/1.0/default/Android.mk
@@ -4,6 +4,7 @@
LOCAL_MODULE := android.hardware.dumpstate@1.0-service
LOCAL_INIT_RC := android.hardware.dumpstate@1.0-service.rc
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_SRC_FILES := \
DumpstateDevice.cpp \
service.cpp
diff --git a/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc b/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc
index 99b968e..0f27248 100644
--- a/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc
+++ b/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc
@@ -1,4 +1,4 @@
-service dumpstate-1-0 /system/bin/hw/android.hardware.dumpstate@1.0-service
+service dumpstate-1-0 /vendor/bin/hw/android.hardware.dumpstate@1.0-service
class hal
user system
group system
diff --git a/evs/1.0/default/Android.bp b/evs/1.0/default/Android.bp
index e3bff25..7be365a 100644
--- a/evs/1.0/default/Android.bp
+++ b/evs/1.0/default/Android.bp
@@ -1,5 +1,6 @@
cc_binary {
name: "android.hardware.evs@1.0-service",
+ proprietary: true,
relative_install_path: "hw",
srcs: [
"service.cpp",
diff --git a/evs/1.0/default/android.hardware.evs@1.0-service.rc b/evs/1.0/default/android.hardware.evs@1.0-service.rc
index be7c9f9..bb38668 100644
--- a/evs/1.0/default/android.hardware.evs@1.0-service.rc
+++ b/evs/1.0/default/android.hardware.evs@1.0-service.rc
@@ -1,4 +1,4 @@
-service evs-hal-1-0 /system/bin/hw/android.hardware.evs@1.0-service
+service evs-hal-1-0 /vendor/bin/hw/android.hardware.evs@1.0-service
class hal
user cameraserver
group camera
diff --git a/example/extension/light/2.0/default/Android.mk b/example/extension/light/2.0/default/Android.mk
index 55c21b9..acd9638 100644
--- a/example/extension/light/2.0/default/Android.mk
+++ b/example/extension/light/2.0/default/Android.mk
@@ -3,6 +3,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.example.extension.light@2.0-service
LOCAL_INIT_RC := android.hardware.example.extension.light@2.0-service.rc
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
Light.cpp \
diff --git a/example/extension/light/2.0/default/android.hardware.example.extension.light@2.0-service.rc b/example/extension/light/2.0/default/android.hardware.example.extension.light@2.0-service.rc
index 8a90d81..7480a7e 100644
--- a/example/extension/light/2.0/default/android.hardware.example.extension.light@2.0-service.rc
+++ b/example/extension/light/2.0/default/android.hardware.example.extension.light@2.0-service.rc
@@ -1,4 +1,4 @@
-service light-ext-2-0 /system/bin/hw/android.hardware.example.extension.light@2.0-service
+service light-ext-2-0 /vendor/bin/hw/android.hardware.example.extension.light@2.0-service
class hal
user system
group system readproc
\ No newline at end of file
diff --git a/gatekeeper/1.0/default/Android.mk b/gatekeeper/1.0/default/Android.mk
index e3b7d10..94dc1ea 100644
--- a/gatekeeper/1.0/default/Android.mk
+++ b/gatekeeper/1.0/default/Android.mk
@@ -3,6 +3,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.gatekeeper@1.0-impl
LOCAL_SRC_FILES := \
@@ -22,6 +23,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.gatekeeper@1.0-service
LOCAL_INIT_RC := android.hardware.gatekeeper@1.0-service.rc
diff --git a/gatekeeper/1.0/default/android.hardware.gatekeeper@1.0-service.rc b/gatekeeper/1.0/default/android.hardware.gatekeeper@1.0-service.rc
index ac15e23..d3f5e9d 100644
--- a/gatekeeper/1.0/default/android.hardware.gatekeeper@1.0-service.rc
+++ b/gatekeeper/1.0/default/android.hardware.gatekeeper@1.0-service.rc
@@ -1,4 +1,4 @@
-service gatekeeper-1-0 /system/bin/hw/android.hardware.gatekeeper@1.0-service
+service gatekeeper-1-0 /vendor/bin/hw/android.hardware.gatekeeper@1.0-service
class hal
user system
group system
diff --git a/gnss/1.0/default/Android.mk b/gnss/1.0/default/Android.mk
index a6f73f2..73889b5 100644
--- a/gnss/1.0/default/Android.mk
+++ b/gnss/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.gnss@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
ThreadCreationWrapper.cpp \
@@ -31,6 +32,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.gnss@1.0-service
LOCAL_INIT_RC := android.hardware.gnss@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/gnss/1.0/default/android.hardware.gnss@1.0-service.rc b/gnss/1.0/default/android.hardware.gnss@1.0-service.rc
index eeb2e43..cf44944 100644
--- a/gnss/1.0/default/android.hardware.gnss@1.0-service.rc
+++ b/gnss/1.0/default/android.hardware.gnss@1.0-service.rc
@@ -1,4 +1,4 @@
-service gnss_service /system/bin/hw/android.hardware.gnss@1.0-service
+service gnss_service /vendor/bin/hw/android.hardware.gnss@1.0-service
class main
user system
group system
diff --git a/graphics/allocator/2.0/default/Android.bp b/graphics/allocator/2.0/default/Android.bp
index f0c736c..315893f 100644
--- a/graphics/allocator/2.0/default/Android.bp
+++ b/graphics/allocator/2.0/default/Android.bp
@@ -1,5 +1,6 @@
cc_library_shared {
name: "android.hardware.graphics.allocator@2.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Gralloc.cpp"],
cppflags: ["-Wall", "-Wextra"],
@@ -18,6 +19,7 @@
cc_binary {
name: "android.hardware.graphics.allocator@2.0-service",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["service.cpp"],
init_rc: ["android.hardware.graphics.allocator@2.0-service.rc"],
diff --git a/graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc b/graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc
index 8bb0d85..c4715cd 100644
--- a/graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc
+++ b/graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc
@@ -1,4 +1,4 @@
-service gralloc-2-0 /system/bin/hw/android.hardware.graphics.allocator@2.0-service
+service gralloc-2-0 /vendor/bin/hw/android.hardware.graphics.allocator@2.0-service
class hal
user system
group graphics drmrpc readproc
diff --git a/graphics/composer/2.1/default/Android.bp b/graphics/composer/2.1/default/Android.bp
index 46cd0c4..4a5c70d 100644
--- a/graphics/composer/2.1/default/Android.bp
+++ b/graphics/composer/2.1/default/Android.bp
@@ -20,6 +20,7 @@
cc_library_shared {
name: "android.hardware.graphics.composer@2.1-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Hwc.cpp"],
static_libs: ["libhwcomposer-client"],
@@ -41,6 +42,7 @@
cc_binary {
name: "android.hardware.graphics.composer@2.1-service",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["service.cpp"],
init_rc: ["android.hardware.graphics.composer@2.1-service.rc"],
diff --git a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc
index 9548d41..4f01bd9 100644
--- a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc
+++ b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc
@@ -1,4 +1,4 @@
-service hwcomposer-2-1 /system/bin/hw/android.hardware.graphics.composer@2.1-service
+service hwcomposer-2-1 /vendor/bin/hw/android.hardware.graphics.composer@2.1-service
class hal
user system
group graphics drmrpc readproc
diff --git a/graphics/mapper/2.0/default/Android.bp b/graphics/mapper/2.0/default/Android.bp
index c3d2281..ca15961 100644
--- a/graphics/mapper/2.0/default/Android.bp
+++ b/graphics/mapper/2.0/default/Android.bp
@@ -15,6 +15,7 @@
cc_library_shared {
name: "android.hardware.graphics.mapper@2.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["GrallocMapper.cpp"],
cppflags: ["-Wall", "-Wextra"],
diff --git a/health/1.0/default/Android.mk b/health/1.0/default/Android.mk
index 89d28cb..3c97185 100644
--- a/health/1.0/default/Android.mk
+++ b/health/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.health@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_C_INCLUDES := system/core/healthd/include system/core/base/include
LOCAL_SRC_FILES := \
@@ -37,6 +38,7 @@
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE := android.hardware.health@1.0-service
LOCAL_INIT_RC := android.hardware.health@1.0-service.rc
diff --git a/health/1.0/default/android.hardware.health@1.0-service.rc b/health/1.0/default/android.hardware.health@1.0-service.rc
index a0d6a56..13cd7a5 100644
--- a/health/1.0/default/android.hardware.health@1.0-service.rc
+++ b/health/1.0/default/android.hardware.health@1.0-service.rc
@@ -1,4 +1,4 @@
-service health-hal-1-0 /system/bin/hw/android.hardware.health@1.0-service
+service health-hal-1-0 /vendor/bin/hw/android.hardware.health@1.0-service
class hal
user system
group system
diff --git a/ir/1.0/default/Android.bp b/ir/1.0/default/Android.bp
index 7c441da..ed0b807 100644
--- a/ir/1.0/default/Android.bp
+++ b/ir/1.0/default/Android.bp
@@ -15,6 +15,7 @@
cc_library_shared {
name: "android.hardware.ir@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: ["ConsumerIr.cpp"],
shared_libs: [
"libhidlbase",
@@ -30,6 +31,7 @@
cc_binary {
relative_install_path: "hw",
name: "android.hardware.ir@1.0-service",
+ proprietary: true,
init_rc: ["android.hardware.ir@1.0-service.rc"],
srcs: ["service.cpp"],
diff --git a/ir/1.0/default/android.hardware.ir@1.0-service.rc b/ir/1.0/default/android.hardware.ir@1.0-service.rc
index 5b05ba2..47f34fe 100644
--- a/ir/1.0/default/android.hardware.ir@1.0-service.rc
+++ b/ir/1.0/default/android.hardware.ir@1.0-service.rc
@@ -1,4 +1,4 @@
-service ir-hal-1-0 /system/bin/hw/android.hardware.ir@1.0-service
+service ir-hal-1-0 /vendor/bin/hw/android.hardware.ir@1.0-service
class hal
user system
group system
\ No newline at end of file
diff --git a/keymaster/3.0/default/Android.mk b/keymaster/3.0/default/Android.mk
index 36d8890..87a8a05 100644
--- a/keymaster/3.0/default/Android.mk
+++ b/keymaster/3.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.keymaster@3.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
KeymasterDevice.cpp \
@@ -22,6 +23,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.keymaster@3.0-service
LOCAL_INIT_RC := android.hardware.keymaster@3.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/keymaster/3.0/default/KeymasterDevice.cpp b/keymaster/3.0/default/KeymasterDevice.cpp
index 563ff84..24cf53a 100644
--- a/keymaster/3.0/default/KeymasterDevice.cpp
+++ b/keymaster/3.0/default/KeymasterDevice.cpp
@@ -375,6 +375,7 @@
}
Return<ErrorCode> KeymasterDevice::addRngEntropy(const hidl_vec<uint8_t>& data) {
+ if (!data.size()) return ErrorCode::OK;
return legacy_enum_conversion(
keymaster_device_->add_rng_entropy(keymaster_device_, &data[0], data.size()));
}
diff --git a/keymaster/3.0/default/android.hardware.keymaster@3.0-service.rc b/keymaster/3.0/default/android.hardware.keymaster@3.0-service.rc
index 86ed1e7..fd43178 100644
--- a/keymaster/3.0/default/android.hardware.keymaster@3.0-service.rc
+++ b/keymaster/3.0/default/android.hardware.keymaster@3.0-service.rc
@@ -1,4 +1,4 @@
-service keymaster-3-0 /system/bin/hw/android.hardware.keymaster@3.0-service
+service keymaster-3-0 /vendor/bin/hw/android.hardware.keymaster@3.0-service
class hal
user system
group system drmrpc
diff --git a/light/2.0/default/Android.mk b/light/2.0/default/Android.mk
index d14d7c0..7bd096c 100644
--- a/light/2.0/default/Android.mk
+++ b/light/2.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.light@2.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
Light.cpp \
@@ -22,6 +23,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.light@2.0-service
LOCAL_INIT_RC := android.hardware.light@2.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/light/2.0/default/android.hardware.light@2.0-service.rc b/light/2.0/default/android.hardware.light@2.0-service.rc
index 3ba97d8..c3284c6 100644
--- a/light/2.0/default/android.hardware.light@2.0-service.rc
+++ b/light/2.0/default/android.hardware.light@2.0-service.rc
@@ -1,4 +1,4 @@
-service light-hal-2-0 /system/bin/hw/android.hardware.light@2.0-service
+service light-hal-2-0 /vendor/bin/hw/android.hardware.light@2.0-service
class hal
user system
group system
\ No newline at end of file
diff --git a/memtrack/1.0/default/Android.bp b/memtrack/1.0/default/Android.bp
index 91fa1ea..b43a159 100644
--- a/memtrack/1.0/default/Android.bp
+++ b/memtrack/1.0/default/Android.bp
@@ -14,6 +14,7 @@
cc_library_shared {
name: "android.hardware.memtrack@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Memtrack.cpp"],
@@ -32,6 +33,7 @@
cc_binary {
relative_install_path: "hw",
+ proprietary: true,
name: "android.hardware.memtrack@1.0-service",
init_rc: ["android.hardware.memtrack@1.0-service.rc"],
srcs: ["service.cpp"],
diff --git a/memtrack/1.0/default/android.hardware.memtrack@1.0-service.rc b/memtrack/1.0/default/android.hardware.memtrack@1.0-service.rc
index 14e7d00..c975a18 100644
--- a/memtrack/1.0/default/android.hardware.memtrack@1.0-service.rc
+++ b/memtrack/1.0/default/android.hardware.memtrack@1.0-service.rc
@@ -1,4 +1,4 @@
-service memtrack-hal-1-0 /system/bin/hw/android.hardware.memtrack@1.0-service
+service memtrack-hal-1-0 /vendor/bin/hw/android.hardware.memtrack@1.0-service
class hal
user system
group system
diff --git a/nfc/1.0/default/Android.bp b/nfc/1.0/default/Android.bp
index b484ba6..02f5664 100644
--- a/nfc/1.0/default/Android.bp
+++ b/nfc/1.0/default/Android.bp
@@ -1,6 +1,7 @@
cc_library_shared {
name: "android.hardware.nfc@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: ["Nfc.cpp"],
shared_libs: [
"liblog",
diff --git a/nfc/1.0/default/Android.mk b/nfc/1.0/default/Android.mk
index a6c7d5c..fbb340f 100644
--- a/nfc/1.0/default/Android.mk
+++ b/nfc/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.nfc@1.0-service
LOCAL_INIT_RC := android.hardware.nfc@1.0-service.rc
LOCAL_SRC_FILES := \
@@ -22,4 +23,5 @@
libhidltransport \
android.hardware.nfc@1.0 \
+
include $(BUILD_EXECUTABLE)
diff --git a/nfc/1.0/default/android.hardware.nfc@1.0-service.rc b/nfc/1.0/default/android.hardware.nfc@1.0-service.rc
index 7b67577..c9b8014 100644
--- a/nfc/1.0/default/android.hardware.nfc@1.0-service.rc
+++ b/nfc/1.0/default/android.hardware.nfc@1.0-service.rc
@@ -1,4 +1,4 @@
-service nfc_hal_service /system/bin/hw/android.hardware.nfc@1.0-service
+service nfc_hal_service /vendor/bin/hw/android.hardware.nfc@1.0-service
class hal
user nfc
group nfc
diff --git a/power/1.0/default/Android.bp b/power/1.0/default/Android.bp
index 1a5a897..71daaeb 100644
--- a/power/1.0/default/Android.bp
+++ b/power/1.0/default/Android.bp
@@ -14,9 +14,15 @@
cc_library_shared {
name: "android.hardware.power@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Power.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+
shared_libs: [
"liblog",
"libhardware",
@@ -30,11 +36,17 @@
}
cc_binary {
+ proprietary: true,
relative_install_path: "hw",
name: "android.hardware.power@1.0-service",
init_rc: ["android.hardware.power@1.0-service.rc"],
srcs: ["service.cpp"],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+
shared_libs: [
"liblog",
"libdl",
diff --git a/power/1.0/default/Power.cpp b/power/1.0/default/Power.cpp
index 2ddac0a..6ea9167 100644
--- a/power/1.0/default/Power.cpp
+++ b/power/1.0/default/Power.cpp
@@ -81,7 +81,7 @@
number_platform_modes = mModule->get_number_of_platform_modes(mModule);
if (number_platform_modes)
{
- if (SIZE_MAX / sizeof(size_t) <= number_platform_modes) // overflow
+ if ((ssize_t) (SIZE_MAX / sizeof(size_t)) <= number_platform_modes) // overflow
goto done;
voters = new (std::nothrow) size_t [number_platform_modes];
if (voters == nullptr)
@@ -91,7 +91,7 @@
if (ret != 0)
goto done;
- if (SIZE_MAX / sizeof(power_state_platform_sleep_state_t)
+ if ((ssize_t) (SIZE_MAX / sizeof(power_state_platform_sleep_state_t))
<= number_platform_modes) // overflow
goto done;
legacy_states = new (std::nothrow)
diff --git a/power/1.0/default/android.hardware.power@1.0-service.rc b/power/1.0/default/android.hardware.power@1.0-service.rc
index 6063541..1777e90 100644
--- a/power/1.0/default/android.hardware.power@1.0-service.rc
+++ b/power/1.0/default/android.hardware.power@1.0-service.rc
@@ -1,4 +1,4 @@
-service power-hal-1-0 /system/bin/hw/android.hardware.power@1.0-service
+service power-hal-1-0 /vendor/bin/hw/android.hardware.power@1.0-service
class hal
user system
group system
diff --git a/sensors/1.0/default/Android.bp b/sensors/1.0/default/Android.bp
index 994febe..3930504 100644
--- a/sensors/1.0/default/Android.bp
+++ b/sensors/1.0/default/Android.bp
@@ -1,5 +1,6 @@
cc_library_shared {
name: "android.hardware.sensors@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Sensors.cpp"],
shared_libs: [
diff --git a/sensors/1.0/default/Android.mk b/sensors/1.0/default/Android.mk
index f37c3cb..6a1aab4 100644
--- a/sensors/1.0/default/Android.mk
+++ b/sensors/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.sensors@1.0-service
LOCAL_INIT_RC := android.hardware.sensors@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/sensors/1.0/default/android.hardware.sensors@1.0-service.rc b/sensors/1.0/default/android.hardware.sensors@1.0-service.rc
index 2cba0fc..2360863 100644
--- a/sensors/1.0/default/android.hardware.sensors@1.0-service.rc
+++ b/sensors/1.0/default/android.hardware.sensors@1.0-service.rc
@@ -1,4 +1,4 @@
-service sensors-hal-1-0 /system/bin/hw/android.hardware.sensors@1.0-service
+service sensors-hal-1-0 /vendor/bin/hw/android.hardware.sensors@1.0-service
class main
user system
group system readproc
diff --git a/soundtrigger/2.0/default/Android.mk b/soundtrigger/2.0/default/Android.mk
index 498c54f..70c78e0 100644
--- a/soundtrigger/2.0/default/Android.mk
+++ b/soundtrigger/2.0/default/Android.mk
@@ -18,6 +18,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.soundtrigger@2.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
SoundTriggerHalImpl.cpp
diff --git a/tests/bar/1.0/default/Android.bp b/tests/bar/1.0/default/Android.bp
index 7e349c2..2c79357 100644
--- a/tests/bar/1.0/default/Android.bp
+++ b/tests/bar/1.0/default/Android.bp
@@ -3,6 +3,7 @@
cc_library_shared {
name: "android.hardware.tests.bar@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: [
"Bar.cpp",
"ImportTypes.cpp",
diff --git a/tests/foo/1.0/default/Android.bp b/tests/foo/1.0/default/Android.bp
index 952f25d..f4a80d5 100644
--- a/tests/foo/1.0/default/Android.bp
+++ b/tests/foo/1.0/default/Android.bp
@@ -3,6 +3,7 @@
cc_library_shared {
name: "android.hardware.tests.foo@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: [
"Foo.cpp",
],
diff --git a/tests/inheritance/1.0/default/Android.bp b/tests/inheritance/1.0/default/Android.bp
index 638d3a4..090c36e 100644
--- a/tests/inheritance/1.0/default/Android.bp
+++ b/tests/inheritance/1.0/default/Android.bp
@@ -3,6 +3,7 @@
cc_library_shared {
name: "android.hardware.tests.inheritance@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: [
"Fetcher.cpp",
"Parent.cpp",
diff --git a/tests/libhwbinder/1.0/default/Android.bp b/tests/libhwbinder/1.0/default/Android.bp
index 73dcc61..0edabfc 100644
--- a/tests/libhwbinder/1.0/default/Android.bp
+++ b/tests/libhwbinder/1.0/default/Android.bp
@@ -1,6 +1,7 @@
cc_library_shared {
name: "android.hardware.tests.libhwbinder@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: [
"Benchmark.cpp",
],
diff --git a/tests/memory/1.0/default/Android.bp b/tests/memory/1.0/default/Android.bp
index bde7c03..14dc08d 100644
--- a/tests/memory/1.0/default/Android.bp
+++ b/tests/memory/1.0/default/Android.bp
@@ -14,6 +14,7 @@
cc_library_shared {
name: "android.hardware.tests.memory@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: [
"MemoryTest.cpp",
diff --git a/tests/pointer/1.0/default/Android.bp b/tests/pointer/1.0/default/Android.bp
index f7180f1..ab7f8fa 100644
--- a/tests/pointer/1.0/default/Android.bp
+++ b/tests/pointer/1.0/default/Android.bp
@@ -3,6 +3,7 @@
cc_library_shared {
name: "android.hardware.tests.pointer@1.0-impl",
relative_install_path: "hw",
+ proprietary: true,
srcs: [
"Graph.cpp",
"Pointer.cpp",
diff --git a/thermal/1.0/default/Android.bp b/thermal/1.0/default/Android.bp
index 819f0b1..96f69cc 100644
--- a/thermal/1.0/default/Android.bp
+++ b/thermal/1.0/default/Android.bp
@@ -1,5 +1,6 @@
cc_library_shared {
name: "android.hardware.thermal@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Thermal.cpp"],
shared_libs: [
diff --git a/thermal/1.0/default/Android.mk b/thermal/1.0/default/Android.mk
index 9039e9f..72c46af 100644
--- a/thermal/1.0/default/Android.mk
+++ b/thermal/1.0/default/Android.mk
@@ -17,6 +17,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.thermal@1.0-service
LOCAL_INIT_RC := android.hardware.thermal@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/thermal/1.0/default/android.hardware.thermal@1.0-service.rc b/thermal/1.0/default/android.hardware.thermal@1.0-service.rc
index cc7ba6a..f8da101 100644
--- a/thermal/1.0/default/android.hardware.thermal@1.0-service.rc
+++ b/thermal/1.0/default/android.hardware.thermal@1.0-service.rc
@@ -1,4 +1,4 @@
-service thermal-hal-1-0 /system/bin/hw/android.hardware.thermal@1.0-service
+service thermal-hal-1-0 /vendor/bin/hw/android.hardware.thermal@1.0-service
class hal
user system
group system readproc
diff --git a/tv/cec/1.0/default/Android.mk b/tv/cec/1.0/default/Android.mk
index 492fc8c..3f986e6 100644
--- a/tv/cec/1.0/default/Android.mk
+++ b/tv/cec/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.tv.cec@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
HdmiCec.cpp
@@ -21,6 +22,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.tv.cec@1.0-service
LOCAL_INIT_RC := android.hardware.tv.cec@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/tv/cec/1.0/default/android.hardware.tv.cec@1.0-service.rc b/tv/cec/1.0/default/android.hardware.tv.cec@1.0-service.rc
index 1af32cb..9c80094 100644
--- a/tv/cec/1.0/default/android.hardware.tv.cec@1.0-service.rc
+++ b/tv/cec/1.0/default/android.hardware.tv.cec@1.0-service.rc
@@ -1,4 +1,4 @@
-service cec-hal-1-0 /system/bin/hw/android.hardware.tv.cec@1.0-service
+service cec-hal-1-0 /vendor/bin/hw/android.hardware.tv.cec@1.0-service
class hal
user system
group system
diff --git a/tv/input/1.0/default/Android.mk b/tv/input/1.0/default/Android.mk
index 9728015..be1775d 100644
--- a/tv/input/1.0/default/Android.mk
+++ b/tv/input/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.tv.input@1.0-impl
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
TvInput.cpp \
@@ -21,6 +22,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.tv.input@1.0-service
LOCAL_INIT_RC := android.hardware.tv.input@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/tv/input/1.0/default/android.hardware.tv.input@1.0-service.rc b/tv/input/1.0/default/android.hardware.tv.input@1.0-service.rc
index c5bc0b7..9edeba6 100644
--- a/tv/input/1.0/default/android.hardware.tv.input@1.0-service.rc
+++ b/tv/input/1.0/default/android.hardware.tv.input@1.0-service.rc
@@ -1,4 +1,4 @@
-service tv-input-1-0 /system/bin/hw/android.hardware.tv.input@1.0-service
+service tv-input-1-0 /vendor/bin/hw/android.hardware.tv.input@1.0-service
class hal
user system
group system readproc
diff --git a/usb/1.0/default/Android.mk b/usb/1.0/default/Android.mk
index 09d7ce7..489293c 100644
--- a/usb/1.0/default/Android.mk
+++ b/usb/1.0/default/Android.mk
@@ -2,6 +2,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := android.hardware.usb@1.0-service
LOCAL_INIT_RC := android.hardware.usb@1.0-service.rc
LOCAL_SRC_FILES := \
diff --git a/usb/1.0/default/android.hardware.usb@1.0-service.rc b/usb/1.0/default/android.hardware.usb@1.0-service.rc
index 77dfc93..6ea0720 100644
--- a/usb/1.0/default/android.hardware.usb@1.0-service.rc
+++ b/usb/1.0/default/android.hardware.usb@1.0-service.rc
@@ -1,4 +1,4 @@
-service usb-hal-1-0 /system/bin/hw/android.hardware.usb@1.0-service
+service usb-hal-1-0 /vendor/bin/hw/android.hardware.usb@1.0-service
class hal
user system
group system
diff --git a/vibrator/1.0/default/Android.bp b/vibrator/1.0/default/Android.bp
index 5e488e6..6cb9802 100644
--- a/vibrator/1.0/default/Android.bp
+++ b/vibrator/1.0/default/Android.bp
@@ -12,8 +12,10 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
cc_library_shared {
name: "android.hardware.vibrator@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Vibrator.cpp"],
shared_libs: [
diff --git a/vibrator/1.0/default/Android.mk b/vibrator/1.0/default/Android.mk
index 5ba334b..091d615 100644
--- a/vibrator/1.0/default/Android.mk
+++ b/vibrator/1.0/default/Android.mk
@@ -19,6 +19,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.vibrator@1.0-service
LOCAL_INIT_RC := android.hardware.vibrator@1.0-service.rc
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
service.cpp \
diff --git a/vibrator/1.0/default/android.hardware.vibrator@1.0-service.rc b/vibrator/1.0/default/android.hardware.vibrator@1.0-service.rc
index a7836b3..4153c44 100644
--- a/vibrator/1.0/default/android.hardware.vibrator@1.0-service.rc
+++ b/vibrator/1.0/default/android.hardware.vibrator@1.0-service.rc
@@ -1,4 +1,4 @@
-service vibrator-1-0 /system/bin/hw/android.hardware.vibrator@1.0-service
+service vibrator-1-0 /vendor/bin/hw/android.hardware.vibrator@1.0-service
class hal
user system
group system readproc
diff --git a/vr/1.0/default/Android.bp b/vr/1.0/default/Android.bp
index da8a754..0d374d3 100644
--- a/vr/1.0/default/Android.bp
+++ b/vr/1.0/default/Android.bp
@@ -1,5 +1,6 @@
cc_library_shared {
name: "android.hardware.vr@1.0-impl",
+ proprietary: true,
relative_install_path: "hw",
srcs: ["Vr.cpp"],
shared_libs: [
@@ -18,6 +19,7 @@
cc_binary {
relative_install_path: "hw",
+ proprietary: true,
name: "android.hardware.vr@1.0-service",
init_rc: ["android.hardware.vr@1.0-service.rc"],
srcs: ["service.cpp"],
diff --git a/vr/1.0/default/android.hardware.vr@1.0-service.rc b/vr/1.0/default/android.hardware.vr@1.0-service.rc
index 6177089..ba43302 100644
--- a/vr/1.0/default/android.hardware.vr@1.0-service.rc
+++ b/vr/1.0/default/android.hardware.vr@1.0-service.rc
@@ -1,4 +1,4 @@
-service vr-1-0 /system/bin/hw/android.hardware.vr@1.0-service
+service vr-1-0 /vendor/bin/hw/android.hardware.vr@1.0-service
class hal
user system
group system readproc
diff --git a/wifi/1.0/default/Android.mk b/wifi/1.0/default/Android.mk
index 144c067..2d2d898 100644
--- a/wifi/1.0/default/Android.mk
+++ b/wifi/1.0/default/Android.mk
@@ -16,9 +16,11 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.wifi@1.0-service
LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
LOCAL_CPPFLAGS := -Wall -Werror -Wextra
LOCAL_SRC_FILES := \
hidl_struct_util.cpp \
+ hidl_sync_util.cpp \
service.cpp \
wifi.cpp \
wifi_ap_iface.cpp \
diff --git a/wifi/1.0/default/THREADING.README b/wifi/1.0/default/THREADING.README
new file mode 100644
index 0000000..8366ca0
--- /dev/null
+++ b/wifi/1.0/default/THREADING.README
@@ -0,0 +1,35 @@
+Vendor HAL Threading Model
+==========================
+The vendor HAL service has two threads:
+1. HIDL thread: This is the main thread which processes all the incoming HIDL
+RPC's.
+2. Legacy HAL event loop thread: This is the thread forked off for processing
+the legacy HAL event loop (wifi_event_loop()). This thread is used to process
+any asynchronous netlink events posted by the driver. Any asynchronous
+callbacks passed to the legacy HAL API's are invoked on this thread.
+
+Synchronization Concerns
+========================
+wifi_legacy_hal.cpp has a bunch of global "C" style functions to handle the
+legacy callbacks. Each of these "C" style function invokes a corresponding
+"std::function" version of the callback which does the actual processing.
+The variables holding these "std::function" callbacks are reset from the HIDL
+thread when they are no longer used. For example: stopGscan() will reset the
+corresponding "on_gscan_*" callback variables which were set when startGscan()
+was invoked. This is not thread safe since these callback variables are
+accesed from the legacy hal event loop thread as well.
+
+Synchronization Solution
+========================
+Adding a global lock seems to be the most trivial solution to the problem.
+a) All of the asynchronous "C" style callbacks will acquire the global lock
+before invoking the corresponding "std::function" callback variables.
+b) All of the HIDL methods will also acquire the global lock before processing
+(in hidl_return_util::validateAndCall()).
+
+Note: It's important that we only acquire the global lock for asynchronous
+callbacks, because there is no guarantee (or documentation to clarify) that the
+synchronous callbacks are invoked on the same invocation thread. If that is not
+the case in some implementation, we will end up deadlocking the system since the
+HIDL thread would have acquired the global lock which is needed by the
+synchronous callback executed on the legacy hal event loop thread.
diff --git a/wifi/1.0/default/android.hardware.wifi@1.0-service.rc b/wifi/1.0/default/android.hardware.wifi@1.0-service.rc
index 9d09347..c0ae4d4 100644
--- a/wifi/1.0/default/android.hardware.wifi@1.0-service.rc
+++ b/wifi/1.0/default/android.hardware.wifi@1.0-service.rc
@@ -1,4 +1,4 @@
-service wifi_hal_legacy /system/bin/hw/android.hardware.wifi@1.0-service
+service wifi_hal_legacy /vendor/bin/hw/android.hardware.wifi@1.0-service
class hal
user wifi
group wifi
diff --git a/wifi/1.0/default/hidl_return_util.h b/wifi/1.0/default/hidl_return_util.h
index 2986165..3f6364b 100644
--- a/wifi/1.0/default/hidl_return_util.h
+++ b/wifi/1.0/default/hidl_return_util.h
@@ -17,6 +17,7 @@
#ifndef HIDL_RETURN_UTIL_H_
#define HIDL_RETURN_UTIL_H_
+#include "hidl_sync_util.h"
#include "wifi_status_util.h"
namespace android {
@@ -44,6 +45,7 @@
WorkFuncT&& work,
const std::function<void(const WifiStatus&)>& hidl_cb,
Args&&... args) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (obj->isValid()) {
hidl_cb((obj->*work)(std::forward<Args>(args)...));
} else {
@@ -61,6 +63,7 @@
WorkFuncT&& work,
const std::function<void(const WifiStatus&, ReturnT)>& hidl_cb,
Args&&... args) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (obj->isValid()) {
const auto& ret_pair = (obj->*work)(std::forward<Args>(args)...);
const WifiStatus& status = std::get<0>(ret_pair);
@@ -86,6 +89,7 @@
WorkFuncT&& work,
const std::function<void(const WifiStatus&, ReturnT1, ReturnT2)>& hidl_cb,
Args&&... args) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (obj->isValid()) {
const auto& ret_tuple = (obj->*work)(std::forward<Args>(args)...);
const WifiStatus& status = std::get<0>(ret_tuple);
diff --git a/wifi/1.0/default/hidl_sync_util.cpp b/wifi/1.0/default/hidl_sync_util.cpp
new file mode 100644
index 0000000..7d47f2f
--- /dev/null
+++ b/wifi/1.0/default/hidl_sync_util.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "hidl_sync_util.h"
+
+namespace {
+std::recursive_mutex g_mutex;
+} // namespace
+
+namespace android {
+namespace hardware {
+namespace wifi {
+namespace V1_0 {
+namespace implementation {
+namespace hidl_sync_util {
+
+std::unique_lock<std::recursive_mutex> acquireGlobalLock() {
+ return std::unique_lock<std::recursive_mutex>{g_mutex};
+}
+
+} // namespace hidl_sync_util
+} // namespace implementation
+} // namespace V1_0
+} // namespace wifi
+} // namespace hardware
+} // namespace android
diff --git a/wifi/1.0/default/hidl_sync_util.h b/wifi/1.0/default/hidl_sync_util.h
new file mode 100644
index 0000000..6631e55
--- /dev/null
+++ b/wifi/1.0/default/hidl_sync_util.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HIDL_SYNC_UTIL_H_
+#define HIDL_SYNC_UTIL_H_
+
+#include <mutex>
+
+// Utility that provides a global lock to synchronize access between
+// the HIDL thread and the legacy HAL's event loop.
+namespace android {
+namespace hardware {
+namespace wifi {
+namespace V1_0 {
+namespace implementation {
+namespace hidl_sync_util {
+std::unique_lock<std::recursive_mutex> acquireGlobalLock();
+} // namespace hidl_sync_util
+} // namespace implementation
+} // namespace V1_0
+} // namespace wifi
+} // namespace hardware
+} // namespace android
+#endif // HIDL_SYNC_UTIL_H_
diff --git a/wifi/1.0/default/service.cpp b/wifi/1.0/default/service.cpp
index 96d5c6f..059304e 100644
--- a/wifi/1.0/default/service.cpp
+++ b/wifi/1.0/default/service.cpp
@@ -27,7 +27,7 @@
int main(int /*argc*/, char** argv) {
android::base::InitLogging(argv,
android::base::LogdLogger(android::base::SYSTEM));
- LOG(INFO) << "wifi_hal_legacy is starting up...";
+ LOG(INFO) << "Wifi Hal is starting up...";
configureRpcThreadpool(1, true /* callerWillJoin */);
@@ -39,6 +39,6 @@
joinRpcThreadpool();
- LOG(INFO) << "wifi_hal_legacy is terminating...";
+ LOG(INFO) << "Wifi Hal is terminating...";
return 0;
}
diff --git a/wifi/1.0/default/wifi_chip.cpp b/wifi/1.0/default/wifi_chip.cpp
index e15178d..0e2d54e 100644
--- a/wifi/1.0/default/wifi_chip.cpp
+++ b/wifi/1.0/default/wifi_chip.cpp
@@ -415,12 +415,16 @@
WifiStatus status = handleChipConfiguration(mode_id);
if (status.code != WifiStatusCode::SUCCESS) {
for (const auto& callback : event_callbacks_) {
- callback->onChipReconfigureFailure(status);
+ if (!callback->onChipReconfigureFailure(status).isOk()) {
+ LOG(ERROR) << "Failed to invoke onChipReconfigureFailure callback";
+ }
}
return status;
}
for (const auto& callback : event_callbacks_) {
- callback->onChipReconfigured(mode_id);
+ if (!callback->onChipReconfigured(mode_id).isOk()) {
+ LOG(ERROR) << "Failed to invoke onChipReconfigured callback";
+ }
}
current_mode_id_ = mode_id;
return status;
@@ -500,7 +504,9 @@
std::string ifname = legacy_hal_.lock()->getApIfaceName();
ap_iface_ = new WifiApIface(ifname, legacy_hal_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceAdded(IfaceType::AP, ifname);
+ if (!callback->onIfaceAdded(IfaceType::AP, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceAdded callback";
+ }
}
return {createWifiStatus(WifiStatusCode::SUCCESS), ap_iface_};
}
@@ -528,7 +534,9 @@
}
invalidateAndClear(ap_iface_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceRemoved(IfaceType::AP, ifname);
+ if (!callback->onIfaceRemoved(IfaceType::AP, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceRemoved callback";
+ }
}
return createWifiStatus(WifiStatusCode::SUCCESS);
}
@@ -542,7 +550,9 @@
std::string ifname = legacy_hal_.lock()->getNanIfaceName();
nan_iface_ = new WifiNanIface(ifname, legacy_hal_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceAdded(IfaceType::NAN, ifname);
+ if (!callback->onIfaceAdded(IfaceType::NAN, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceAdded callback";
+ }
}
return {createWifiStatus(WifiStatusCode::SUCCESS), nan_iface_};
}
@@ -570,7 +580,9 @@
}
invalidateAndClear(nan_iface_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceRemoved(IfaceType::NAN, ifname);
+ if (!callback->onIfaceRemoved(IfaceType::NAN, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceAdded callback";
+ }
}
return createWifiStatus(WifiStatusCode::SUCCESS);
}
@@ -584,7 +596,9 @@
std::string ifname = legacy_hal_.lock()->getP2pIfaceName();
p2p_iface_ = new WifiP2pIface(ifname, legacy_hal_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceAdded(IfaceType::P2P, ifname);
+ if (!callback->onIfaceAdded(IfaceType::P2P, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceAdded callback";
+ }
}
return {createWifiStatus(WifiStatusCode::SUCCESS), p2p_iface_};
}
@@ -612,7 +626,9 @@
}
invalidateAndClear(p2p_iface_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceRemoved(IfaceType::P2P, ifname);
+ if (!callback->onIfaceRemoved(IfaceType::P2P, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceRemoved callback";
+ }
}
return createWifiStatus(WifiStatusCode::SUCCESS);
}
@@ -624,7 +640,9 @@
std::string ifname = legacy_hal_.lock()->getStaIfaceName();
sta_iface_ = new WifiStaIface(ifname, legacy_hal_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceAdded(IfaceType::STA, ifname);
+ if (!callback->onIfaceAdded(IfaceType::STA, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceAdded callback";
+ }
}
return {createWifiStatus(WifiStatusCode::SUCCESS), sta_iface_};
}
@@ -652,7 +670,9 @@
}
invalidateAndClear(sta_iface_);
for (const auto& callback : event_callbacks_) {
- callback->onIfaceRemoved(IfaceType::STA, ifname);
+ if (!callback->onIfaceRemoved(IfaceType::STA, ifname).isOk()) {
+ LOG(ERROR) << "Failed to invoke onIfaceRemoved callback";
+ }
}
return createWifiStatus(WifiStatusCode::SUCCESS);
}
@@ -743,7 +763,9 @@
return;
}
for (const auto& callback : shared_ptr_this->getEventCallbacks()) {
- callback->onDebugErrorAlert(error_code, debug_data);
+ if (!callback->onDebugErrorAlert(error_code, debug_data).isOk()) {
+ LOG(ERROR) << "Failed to invoke onDebugErrorAlert callback";
+ }
}
};
legacy_status = legacy_hal_.lock()->registerErrorAlertCallbackHandler(
@@ -806,7 +828,10 @@
return;
}
for (const auto& callback : shared_ptr_this->getEventCallbacks()) {
- callback->onDebugRingBufferDataAvailable(hidl_status, data);
+ if (!callback->onDebugRingBufferDataAvailable(hidl_status, data).isOk()) {
+ LOG(ERROR) << "Failed to invoke onDebugRingBufferDataAvailable"
+ << " callback";
+ }
}
};
legacy_hal::wifi_error legacy_status =
diff --git a/wifi/1.0/default/wifi_legacy_hal.cpp b/wifi/1.0/default/wifi_legacy_hal.cpp
index b0b0f96..cd89acc 100644
--- a/wifi/1.0/default/wifi_legacy_hal.cpp
+++ b/wifi/1.0/default/wifi_legacy_hal.cpp
@@ -19,6 +19,7 @@
#include <android-base/logging.h>
#include <cutils/properties.h>
+#include "hidl_sync_util.h"
#include "wifi_legacy_hal.h"
#include "wifi_legacy_hal_stubs.h"
@@ -54,7 +55,8 @@
// std::function methods to be invoked.
// Callback to be invoked once |stop| is complete.
std::function<void(wifi_handle handle)> on_stop_complete_internal_callback;
-void onStopComplete(wifi_handle handle) {
+void onAsyncStopComplete(wifi_handle handle) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_stop_complete_internal_callback) {
on_stop_complete_internal_callback(handle);
}
@@ -62,7 +64,7 @@
// Callback to be invoked for driver dump.
std::function<void(char*, int)> on_driver_memory_dump_internal_callback;
-void onDriverMemoryDump(char* buffer, int buffer_size) {
+void onSyncDriverMemoryDump(char* buffer, int buffer_size) {
if (on_driver_memory_dump_internal_callback) {
on_driver_memory_dump_internal_callback(buffer, buffer_size);
}
@@ -70,7 +72,7 @@
// Callback to be invoked for firmware dump.
std::function<void(char*, int)> on_firmware_memory_dump_internal_callback;
-void onFirmwareMemoryDump(char* buffer, int buffer_size) {
+void onSyncFirmwareMemoryDump(char* buffer, int buffer_size) {
if (on_firmware_memory_dump_internal_callback) {
on_firmware_memory_dump_internal_callback(buffer, buffer_size);
}
@@ -79,7 +81,8 @@
// Callback to be invoked for Gscan events.
std::function<void(wifi_request_id, wifi_scan_event)>
on_gscan_event_internal_callback;
-void onGscanEvent(wifi_request_id id, wifi_scan_event event) {
+void onAsyncGscanEvent(wifi_request_id id, wifi_scan_event event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_gscan_event_internal_callback) {
on_gscan_event_internal_callback(id, event);
}
@@ -88,9 +91,10 @@
// Callback to be invoked for Gscan full results.
std::function<void(wifi_request_id, wifi_scan_result*, uint32_t)>
on_gscan_full_result_internal_callback;
-void onGscanFullResult(wifi_request_id id,
- wifi_scan_result* result,
- uint32_t buckets_scanned) {
+void onAsyncGscanFullResult(wifi_request_id id,
+ wifi_scan_result* result,
+ uint32_t buckets_scanned) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_gscan_full_result_internal_callback) {
on_gscan_full_result_internal_callback(id, result, buckets_scanned);
}
@@ -99,10 +103,10 @@
// Callback to be invoked for link layer stats results.
std::function<void((wifi_request_id, wifi_iface_stat*, int, wifi_radio_stat*))>
on_link_layer_stats_result_internal_callback;
-void onLinkLayerStatsResult(wifi_request_id id,
- wifi_iface_stat* iface_stat,
- int num_radios,
- wifi_radio_stat* radio_stat) {
+void onSyncLinkLayerStatsResult(wifi_request_id id,
+ wifi_iface_stat* iface_stat,
+ int num_radios,
+ wifi_radio_stat* radio_stat) {
if (on_link_layer_stats_result_internal_callback) {
on_link_layer_stats_result_internal_callback(
id, iface_stat, num_radios, radio_stat);
@@ -112,7 +116,10 @@
// Callback to be invoked for rssi threshold breach.
std::function<void((wifi_request_id, uint8_t*, int8_t))>
on_rssi_threshold_breached_internal_callback;
-void onRssiThresholdBreached(wifi_request_id id, uint8_t* bssid, int8_t rssi) {
+void onAsyncRssiThresholdBreached(wifi_request_id id,
+ uint8_t* bssid,
+ int8_t rssi) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_rssi_threshold_breached_internal_callback) {
on_rssi_threshold_breached_internal_callback(id, bssid, rssi);
}
@@ -121,10 +128,11 @@
// Callback to be invoked for ring buffer data indication.
std::function<void(char*, char*, int, wifi_ring_buffer_status*)>
on_ring_buffer_data_internal_callback;
-void onRingBufferData(char* ring_name,
- char* buffer,
- int buffer_size,
- wifi_ring_buffer_status* status) {
+void onAsyncRingBufferData(char* ring_name,
+ char* buffer,
+ int buffer_size,
+ wifi_ring_buffer_status* status) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_ring_buffer_data_internal_callback) {
on_ring_buffer_data_internal_callback(
ring_name, buffer, buffer_size, status);
@@ -134,10 +142,11 @@
// Callback to be invoked for error alert indication.
std::function<void(wifi_request_id, char*, int, int)>
on_error_alert_internal_callback;
-void onErrorAlert(wifi_request_id id,
- char* buffer,
- int buffer_size,
- int err_code) {
+void onAsyncErrorAlert(wifi_request_id id,
+ char* buffer,
+ int buffer_size,
+ int err_code) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_error_alert_internal_callback) {
on_error_alert_internal_callback(id, buffer, buffer_size, err_code);
}
@@ -147,9 +156,10 @@
std::function<void(
wifi_request_id, unsigned num_results, wifi_rtt_result* rtt_results[])>
on_rtt_results_internal_callback;
-void onRttResults(wifi_request_id id,
- unsigned num_results,
- wifi_rtt_result* rtt_results[]) {
+void onAsyncRttResults(wifi_request_id id,
+ unsigned num_results,
+ wifi_rtt_result* rtt_results[]) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_rtt_results_internal_callback) {
on_rtt_results_internal_callback(id, num_results, rtt_results);
}
@@ -161,7 +171,8 @@
// So, handle all of them here directly to avoid adding an unnecessary layer.
std::function<void(transaction_id, const NanResponseMsg&)>
on_nan_notify_response_user_callback;
-void onNanNotifyResponse(transaction_id id, NanResponseMsg* msg) {
+void onAysncNanNotifyResponse(transaction_id id, NanResponseMsg* msg) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_notify_response_user_callback && msg) {
on_nan_notify_response_user_callback(id, *msg);
}
@@ -169,14 +180,16 @@
std::function<void(const NanPublishTerminatedInd&)>
on_nan_event_publish_terminated_user_callback;
-void onNanEventPublishTerminated(NanPublishTerminatedInd* event) {
+void onAysncNanEventPublishTerminated(NanPublishTerminatedInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_publish_terminated_user_callback && event) {
on_nan_event_publish_terminated_user_callback(*event);
}
}
std::function<void(const NanMatchInd&)> on_nan_event_match_user_callback;
-void onNanEventMatch(NanMatchInd* event) {
+void onAysncNanEventMatch(NanMatchInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_match_user_callback && event) {
on_nan_event_match_user_callback(*event);
}
@@ -184,7 +197,8 @@
std::function<void(const NanMatchExpiredInd&)>
on_nan_event_match_expired_user_callback;
-void onNanEventMatchExpired(NanMatchExpiredInd* event) {
+void onAysncNanEventMatchExpired(NanMatchExpiredInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_match_expired_user_callback && event) {
on_nan_event_match_expired_user_callback(*event);
}
@@ -192,14 +206,16 @@
std::function<void(const NanSubscribeTerminatedInd&)>
on_nan_event_subscribe_terminated_user_callback;
-void onNanEventSubscribeTerminated(NanSubscribeTerminatedInd* event) {
+void onAysncNanEventSubscribeTerminated(NanSubscribeTerminatedInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_subscribe_terminated_user_callback && event) {
on_nan_event_subscribe_terminated_user_callback(*event);
}
}
std::function<void(const NanFollowupInd&)> on_nan_event_followup_user_callback;
-void onNanEventFollowup(NanFollowupInd* event) {
+void onAysncNanEventFollowup(NanFollowupInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_followup_user_callback && event) {
on_nan_event_followup_user_callback(*event);
}
@@ -207,21 +223,24 @@
std::function<void(const NanDiscEngEventInd&)>
on_nan_event_disc_eng_event_user_callback;
-void onNanEventDiscEngEvent(NanDiscEngEventInd* event) {
+void onAysncNanEventDiscEngEvent(NanDiscEngEventInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_disc_eng_event_user_callback && event) {
on_nan_event_disc_eng_event_user_callback(*event);
}
}
std::function<void(const NanDisabledInd&)> on_nan_event_disabled_user_callback;
-void onNanEventDisabled(NanDisabledInd* event) {
+void onAysncNanEventDisabled(NanDisabledInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_disabled_user_callback && event) {
on_nan_event_disabled_user_callback(*event);
}
}
std::function<void(const NanTCAInd&)> on_nan_event_tca_user_callback;
-void onNanEventTca(NanTCAInd* event) {
+void onAysncNanEventTca(NanTCAInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_tca_user_callback && event) {
on_nan_event_tca_user_callback(*event);
}
@@ -229,7 +248,8 @@
std::function<void(const NanBeaconSdfPayloadInd&)>
on_nan_event_beacon_sdf_payload_user_callback;
-void onNanEventBeaconSdfPayload(NanBeaconSdfPayloadInd* event) {
+void onAysncNanEventBeaconSdfPayload(NanBeaconSdfPayloadInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_beacon_sdf_payload_user_callback && event) {
on_nan_event_beacon_sdf_payload_user_callback(*event);
}
@@ -237,14 +257,16 @@
std::function<void(const NanDataPathRequestInd&)>
on_nan_event_data_path_request_user_callback;
-void onNanEventDataPathRequest(NanDataPathRequestInd* event) {
+void onAysncNanEventDataPathRequest(NanDataPathRequestInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_data_path_request_user_callback && event) {
on_nan_event_data_path_request_user_callback(*event);
}
}
std::function<void(const NanDataPathConfirmInd&)>
on_nan_event_data_path_confirm_user_callback;
-void onNanEventDataPathConfirm(NanDataPathConfirmInd* event) {
+void onAysncNanEventDataPathConfirm(NanDataPathConfirmInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_data_path_confirm_user_callback && event) {
on_nan_event_data_path_confirm_user_callback(*event);
}
@@ -252,7 +274,8 @@
std::function<void(const NanDataPathEndInd&)>
on_nan_event_data_path_end_user_callback;
-void onNanEventDataPathEnd(NanDataPathEndInd* event) {
+void onAysncNanEventDataPathEnd(NanDataPathEndInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_data_path_end_user_callback && event) {
on_nan_event_data_path_end_user_callback(*event);
}
@@ -260,7 +283,8 @@
std::function<void(const NanTransmitFollowupInd&)>
on_nan_event_transmit_follow_up_user_callback;
-void onNanEventTransmitFollowUp(NanTransmitFollowupInd* event) {
+void onAysncNanEventTransmitFollowUp(NanTransmitFollowupInd* event) {
+ const auto lock = hidl_sync_util::acquireGlobalLock();
if (on_nan_event_transmit_follow_up_user_callback && event) {
on_nan_event_transmit_follow_up_user_callback(*event);
}
@@ -326,7 +350,8 @@
return WIFI_SUCCESS;
}
LOG(DEBUG) << "Stopping legacy HAL";
- on_stop_complete_internal_callback = [&](wifi_handle handle) {
+ on_stop_complete_internal_callback = [on_stop_complete_user_callback,
+ this](wifi_handle handle) {
CHECK_EQ(global_handle_, handle) << "Handle mismatch";
// Invalidate all the internal pointers now that the HAL is
// stopped.
@@ -335,7 +360,7 @@
on_stop_complete_user_callback();
};
awaiting_event_loop_termination_ = true;
- global_func_table_.wifi_cleanup(global_handle_, onStopComplete);
+ global_func_table_.wifi_cleanup(global_handle_, onAsyncStopComplete);
LOG(DEBUG) << "Legacy HAL stop complete";
is_started_ = false;
return WIFI_SUCCESS;
@@ -391,7 +416,7 @@
reinterpret_cast<uint8_t*>(buffer) + buffer_size);
};
wifi_error status = global_func_table_.wifi_get_driver_memory_dump(
- wlan_interface_handle_, {onDriverMemoryDump});
+ wlan_interface_handle_, {onSyncDriverMemoryDump});
on_driver_memory_dump_internal_callback = nullptr;
return {status, std::move(driver_dump)};
}
@@ -406,7 +431,7 @@
reinterpret_cast<uint8_t*>(buffer) + buffer_size);
};
wifi_error status = global_func_table_.wifi_get_firmware_memory_dump(
- wlan_interface_handle_, {onFirmwareMemoryDump});
+ wlan_interface_handle_, {onSyncFirmwareMemoryDump});
on_firmware_memory_dump_internal_callback = nullptr;
return {status, std::move(firmware_dump)};
}
@@ -488,7 +513,8 @@
}
};
- wifi_scan_result_handler handler = {onGscanFullResult, onGscanEvent};
+ wifi_scan_result_handler handler = {onAsyncGscanFullResult,
+ onAsyncGscanEvent};
wifi_error status = global_func_table_.wifi_start_gscan(
id, wlan_interface_handle_, params, handler);
if (status != WIFI_SUCCESS) {
@@ -584,7 +610,7 @@
};
wifi_error status = global_func_table_.wifi_get_link_stats(
- 0, wlan_interface_handle_, {onLinkLayerStatsResult});
+ 0, wlan_interface_handle_, {onSyncLinkLayerStatsResult});
on_link_layer_stats_result_internal_callback = nullptr;
return {status, link_stats};
}
@@ -609,12 +635,12 @@
std::copy(bssid_ptr, bssid_ptr + 6, std::begin(bssid_arr));
on_threshold_breached_user_callback(id, bssid_arr, rssi);
};
- wifi_error status =
- global_func_table_.wifi_start_rssi_monitoring(id,
- wlan_interface_handle_,
- max_rssi,
- min_rssi,
- {onRssiThresholdBreached});
+ wifi_error status = global_func_table_.wifi_start_rssi_monitoring(
+ id,
+ wlan_interface_handle_,
+ max_rssi,
+ min_rssi,
+ {onAsyncRssiThresholdBreached});
if (status != WIFI_SUCCESS) {
on_rssi_threshold_breached_internal_callback = nullptr;
}
@@ -789,7 +815,7 @@
}
};
wifi_error status = global_func_table_.wifi_set_log_handler(
- 0, wlan_interface_handle_, {onRingBufferData});
+ 0, wlan_interface_handle_, {onAsyncRingBufferData});
if (status != WIFI_SUCCESS) {
on_ring_buffer_data_internal_callback = nullptr;
}
@@ -850,7 +876,7 @@
}
};
wifi_error status = global_func_table_.wifi_set_alert_handler(
- 0, wlan_interface_handle_, {onErrorAlert});
+ 0, wlan_interface_handle_, {onAsyncErrorAlert});
if (status != WIFI_SUCCESS) {
on_error_alert_internal_callback = nullptr;
}
@@ -896,7 +922,7 @@
wlan_interface_handle_,
rtt_configs.size(),
rtt_configs_internal.data(),
- {onRttResults});
+ {onAsyncRttResults});
if (status != WIFI_SUCCESS) {
on_rtt_results_internal_callback = nullptr;
}
@@ -1000,20 +1026,20 @@
return global_func_table_.wifi_nan_register_handler(
wlan_interface_handle_,
- {onNanNotifyResponse,
- onNanEventPublishTerminated,
- onNanEventMatch,
- onNanEventMatchExpired,
- onNanEventSubscribeTerminated,
- onNanEventFollowup,
- onNanEventDiscEngEvent,
- onNanEventDisabled,
- onNanEventTca,
- onNanEventBeaconSdfPayload,
- onNanEventDataPathRequest,
- onNanEventDataPathConfirm,
- onNanEventDataPathEnd,
- onNanEventTransmitFollowUp});
+ {onAysncNanNotifyResponse,
+ onAysncNanEventPublishTerminated,
+ onAysncNanEventMatch,
+ onAysncNanEventMatchExpired,
+ onAysncNanEventSubscribeTerminated,
+ onAysncNanEventFollowup,
+ onAysncNanEventDiscEngEvent,
+ onAysncNanEventDisabled,
+ onAysncNanEventTca,
+ onAysncNanEventBeaconSdfPayload,
+ onAysncNanEventDataPathRequest,
+ onAysncNanEventDataPathConfirm,
+ onAysncNanEventDataPathEnd,
+ onAysncNanEventTransmitFollowUp});
}
wifi_error WifiLegacyHal::nanEnableRequest(transaction_id id,
diff --git a/wifi/1.0/default/wifi_legacy_hal.h b/wifi/1.0/default/wifi_legacy_hal.h
index dce4ed4..e65b79b 100644
--- a/wifi/1.0/default/wifi_legacy_hal.h
+++ b/wifi/1.0/default/wifi_legacy_hal.h
@@ -124,6 +124,9 @@
/**
* Class that encapsulates all legacy HAL interactions.
* This class manages the lifetime of the event loop thread used by legacy HAL.
+ *
+ * Note: aThere will only be a single instance of this class created in the Wifi
+ * object and will be valid for the lifetime of the process.
*/
class WifiLegacyHal {
public:
diff --git a/wifi/1.0/default/wifi_sta_iface.cpp b/wifi/1.0/default/wifi_sta_iface.cpp
index 6cc41db..6100334 100644
--- a/wifi/1.0/default/wifi_sta_iface.cpp
+++ b/wifi/1.0/default/wifi_sta_iface.cpp
@@ -389,7 +389,9 @@
return;
}
for (const auto& callback : shared_ptr_this->getEventCallbacks()) {
- callback->onBackgroundScanFailure(id);
+ if (!callback->onBackgroundScanFailure(id).isOk()) {
+ LOG(ERROR) << "Failed to invoke onBackgroundScanFailure callback";
+ }
}
};
const auto& on_results_callback = [weak_ptr_this](
@@ -407,7 +409,9 @@
return;
}
for (const auto& callback : shared_ptr_this->getEventCallbacks()) {
- callback->onBackgroundScanResults(id, hidl_scan_datas);
+ if (!callback->onBackgroundScanResults(id, hidl_scan_datas).isOk()) {
+ LOG(ERROR) << "Failed to invoke onBackgroundScanResults callback";
+ }
}
};
const auto& on_full_result_callback = [weak_ptr_this](
@@ -426,7 +430,9 @@
return;
}
for (const auto& callback : shared_ptr_this->getEventCallbacks()) {
- callback->onBackgroundFullScanResult(id, hidl_scan_result);
+ if (!callback->onBackgroundFullScanResult(id, hidl_scan_result).isOk()) {
+ LOG(ERROR) << "Failed to invoke onBackgroundFullScanResult callback";
+ }
}
};
legacy_hal::wifi_error legacy_status =
@@ -486,7 +492,9 @@
return;
}
for (const auto& callback : shared_ptr_this->getEventCallbacks()) {
- callback->onRssiThresholdBreached(id, bssid, rssi);
+ if (!callback->onRssiThresholdBreached(id, bssid, rssi).isOk()) {
+ LOG(ERROR) << "Failed to invoke onRssiThresholdBreached callback";
+ }
}
};
legacy_hal::wifi_error legacy_status =
diff --git a/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal b/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
index ad4290b..b6ee57f 100644
--- a/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
@@ -195,43 +195,6 @@
oneway onInvitationResult(Bssid bssid, P2pStatusCode status);
/**
- * Used to indicate a push-button request generated during provision discovery.
- *
- * @param p2pDeviceAddress P2P device address.
- */
- oneway onProvisionDiscoveryPbcRequest(MacAddress p2pDeviceAddress);
-
- /**
- * Used to indicate a push-button response generated during provision discovery.
- *
- * @param p2pDeviceAddress P2P device address.
- */
- oneway onProvisionDiscoveryPbcResponse(MacAddress p2pDeviceAddress);
-
- /**
- * Used to indicate the pin generated during provision discovery.
- *
- * @param p2pDeviceAddress P2P device address.
- * @param generatedPin 8 digit pin generated.
- */
- oneway onProvisionDiscoveryShowPin(
- MacAddress p2pDeviceAddress, string generatedPin);
-
- /**
- * Used to indicate that a pin needs to be entered during provision discovery.
- *
- * @param p2pDeviceAddress P2P device address.
- */
- oneway onProvisionDiscoveryEnterPin(MacAddress p2pDeviceAddress);
-
- /**
- * Used to indicate a provision discovery failure.
- *
- * @param p2pDeviceAddress P2P device address.
- */
- oneway onProvisionDiscoveryFailure(MacAddress p2pDeviceAddress);
-
- /**
* Used to indicate the completion of a P2P provision discovery request.
*
* @param p2pDeviceAddress P2P device address.
diff --git a/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal b/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
index c3ec060..34237f0 100644
--- a/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
@@ -257,13 +257,6 @@
string url);
/**
- * Used to indicate the connection to a new network on this iface.
- *
- * @param bssid BSSID of the AP to which we connected.
- */
- oneway onConnected(Bssid bssid);
-
- /**
* Used to indicate the disconnection from the currently connected
* network on this iface.
*
@@ -277,13 +270,6 @@
Bssid bssid, bool locallyGenerated, uint32_t reasonCode);
/**
- * Used to indicate the completion of association to an AP.
- *
- * @param bssid BSSID of the corresponding AP.
- */
- oneway onAssociationCompleted(Bssid bssid);
-
- /**
* Used to indicate an association rejection recieved from the AP
* to which the connection is being attempted.
*