summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2020-08-27 17:12:52 -0700
committerXin Li <delphij@google.com>2020-08-31 13:46:03 -0700
commit40107d2ac05d4cacd56a0c98caca4b6ea0800498 (patch)
tree381224636b65096edceec1f45956f7da2fa6474c
parentb04f7fad1f3449209eac8936638034ddeb9cb571 (diff)
parentdea698f3b1a1b41b9616c84e0cc65521683c6aec (diff)
downloadwahoo-temp_sam_168057903.tar.gz
Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)temp_sam_168057903
Bug: 166295507 Merged-In: I3a1e355f510e6328d05e76ba2961562fe711da1b Change-Id: I51411eabdf7f95382b4049a26f261b6d7af9aa86
-rw-r--r--BoardConfig.mk9
-rw-r--r--CleanSpec.mk5
-rw-r--r--component-overrides.xml20
-rw-r--r--default-permissions.xml1
-rwxr-xr-xdevice.mk80
-rw-r--r--dumpstate/Android.mk2
-rwxr-xr-xdumpstate/DumpstateDevice.cpp1
-rw-r--r--health/Android.bp2
-rw-r--r--health/LearnedCapacityBackupRestore.cpp25
-rw-r--r--health/LearnedCapacityBackupRestore.h2
-rw-r--r--init.hardware.rc132
-rw-r--r--init.hardware.xr.rc100
-rw-r--r--manifest.xml62
-rw-r--r--media_codecs_performance.xml2
-rwxr-xr-xoverlay/frameworks/base/core/res/res/values/config.xml57
-rw-r--r--overlay/frameworks/base/packages/SystemUI/res/values/config.xml7
-rw-r--r--overlay/packages/apps/Bluetooth/res/values/config.xml33
-rw-r--r--powerstats/Android.bp1
-rw-r--r--powerstats/EaselStateResidencyDataProvider.cpp2
-rw-r--r--rro_overlays/WifiOverlay/Android.bp7
-rw-r--r--rro_overlays/WifiOverlay/AndroidManifest.xml27
-rw-r--r--rro_overlays/WifiOverlay/OWNERS5
-rw-r--r--rro_overlays/WifiOverlay/res/values/config.xml88
-rw-r--r--sepolicy/private/seapp_contexts4
-rw-r--r--sepolicy/private/sprint_hidden_menu.te9
-rw-r--r--sepolicy/vendor/app.te3
-rw-r--r--sepolicy/vendor/bootanim.te3
-rw-r--r--sepolicy/vendor/cameraserver.te3
-rw-r--r--sepolicy/vendor/certs/com_google_mds.x509.pem29
-rw-r--r--sepolicy/vendor/device.te1
-rw-r--r--sepolicy/vendor/file.te1
-rw-r--r--sepolicy/vendor/file_contexts8
-rw-r--r--sepolicy/vendor/genfs_contexts3
-rw-r--r--sepolicy/vendor/hal_graphics_allocator_default.te3
-rw-r--r--sepolicy/vendor/hal_power_default.te7
-rw-r--r--sepolicy/vendor/hal_thermal_default.te7
-rw-r--r--sepolicy/vendor/init-thermal-logging.sh.te10
-rw-r--r--sepolicy/vendor/keys.conf3
-rw-r--r--sepolicy/vendor/mac_permissions.xml3
-rw-r--r--sepolicy/vendor/mediaswcodec.te (renamed from sepolicy/private/mediaswcodec.te)0
-rw-r--r--sepolicy/vendor/omadm.te10
-rw-r--r--sepolicy/vendor/property.te3
-rw-r--r--sepolicy/vendor/property_contexts22
-rw-r--r--sepolicy/vendor/seapp_contexts5
-rw-r--r--sepolicy/vendor/surfaceflinger.te3
-rw-r--r--sepolicy/vendor/system_server.te3
-rw-r--r--sepolicy/vendor/vendor_init.te7
-rw-r--r--sepolicy/vendor/wifi_sniffer.te20
-rw-r--r--system.prop3
-rw-r--r--usb/Android.bp6
-rw-r--r--usb/UsbGadget.cpp106
-rw-r--r--usb/UsbGadget.h30
-rw-r--r--usb/android.hardware.usb.gadget@1.1-service.wahoo.xml11
-rw-r--r--usb/android.hardware.usb@1.1-service.wahoo.xml12
-rw-r--r--usb/service.cpp4
-rw-r--r--vibrator/Android.bp37
-rw-r--r--vibrator/OWNERS2
-rw-r--r--vibrator/Vibrator.cpp242
-rw-r--r--vibrator/Vibrator.h75
-rw-r--r--vibrator/android.hardware.vibrator@1.2-service.wahoo.rc4
-rw-r--r--vibrator/service.cpp208
-rw-r--r--wpa_supplicant_overlay.conf1
62 files changed, 604 insertions, 977 deletions
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 7a62675a..07cd1acd 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -129,10 +129,14 @@ WIFI_DRIVER_FW_PATH_P2P := "p2p"
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
WIFI_HIDL_FEATURE_AWARE := true
+WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
+
+# CHRE
+CHRE_DAEMON_ENABLED := true
+CHRE_DAEMON_USE_SDSPRPC := true
# Audio
BOARD_USES_ALSA_AUDIO := true
-USE_XML_AUDIO_POLICY_CONF := 1
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
@@ -168,9 +172,6 @@ TARGET_USES_MKE2FS := true
BOARD_VNDK_VERSION := current
-# Generate an APEX image for experiment b/119800099.
-DEXPREOPT_GENERATE_APEX_IMAGE := true
-
# Board uses A/B OTA.
AB_OTA_UPDATER := true
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 7ef7ba03..1f5c53b1 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -87,6 +87,7 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/permissions/android.hard
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/permissions/android.hardware.vr.high_performance.xml)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/permissions/android.hardware.vulkan.level.xml)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/permissions/android.hardware.vulkan.version.xml)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/permissions/android.software.vulkan.deqp.level.xml)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/wifi/wpa_supplicant_overlay.conf)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/wifi/p2p_supplicant_overlay.conf)
@@ -205,3 +206,7 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.po
# Remove obsolete android.hardware.boot@1.0-impl-wrapper.recovery.so
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/system/lib64/hw/android.hardware.boot@1.0-impl-wrapper.recovery.so)
+
+# Vibrator HAL 1.2 renamed from 'wahoo' to 'drv2624'
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.vibrator@1.2-service.wahoo.rc)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.vibrator@1.2-service.wahoo)
diff --git a/component-overrides.xml b/component-overrides.xml
new file mode 100644
index 00000000..bb3419d8
--- /dev/null
+++ b/component-overrides.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<config>
+ <component-override package="com.android.bluetooth" >
+ <component class=".sap.SapService" enabled="true" />
+ </component-override>
+</config> \ No newline at end of file
diff --git a/default-permissions.xml b/default-permissions.xml
index b64420ef..4cd736b3 100644
--- a/default-permissions.xml
+++ b/default-permissions.xml
@@ -133,6 +133,7 @@
<permission name="android.permission.RECEIVE_SMS" fixed="false"/>
<permission name="android.permission.RECORD_AUDIO" fixed="false"/>
<permission name="android.permission.SEND_SMS" fixed="false"/>
+ <permission name="android.permission.READ_CALENDAR" fixed="false"/>
<!-- For Top Gear -->
<permission name="android.permission.PROCESS_OUTGOING_CALLS" fixed="false"/>
<permission name="android.permission.READ_SMS" fixed="false"/>
diff --git a/device.mk b/device.mk
index 5414fa34..80e08ae2 100755
--- a/device.mk
+++ b/device.mk
@@ -35,17 +35,19 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
PRODUCT_SOONG_NAMESPACES += \
device/google/wahoo \
vendor/google/camera \
+ hardware/google/camera \
hardware/google/pixel \
hardware/qcom/msm8998
PRODUCT_COPY_FILES += \
device/google/wahoo/default-permissions.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default-permissions/default-permissions.xml \
+ device/google/wahoo/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
frameworks/native/data/etc/android.software.verified_boot.xml:system/etc/permissions/android.software.verified_boot.xml
# Set the SVN for the targeted MR release
PRODUCT_PROPERTY_OVERRIDES += \
- ro.vendor.build.svn=47
+ ro.vendor.build.svn=50
# Enforce privapp-permissions whitelist
PRODUCT_PROPERTY_OVERRIDES += \
@@ -54,6 +56,10 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PACKAGES += \
messaging
+ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
+PRODUCT_PACKAGES += chre_test_client
+endif
+
LOCAL_PATH := device/google/wahoo
SRC_MEDIA_HAL_DIR := hardware/qcom/media/msm8998
@@ -81,7 +87,6 @@ DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel \
$(LOCAL_PATH)/init.recovery.hardware.rc:recovery/root/init.recovery.$(PRODUCT_HARDWARE).rc \
- $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_HARDWARE).rc \
$(LOCAL_PATH)/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.wahoo.usb.rc \
$(LOCAL_PATH)/ueventd.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
$(LOCAL_PATH)/init.elabel.sh:$(TARGET_COPY_OUT_SYSTEM)/bin/init.elabel.sh \
@@ -96,6 +101,18 @@ PRODUCT_COPY_FILES += \
frameworks/native/services/vr/virtual_touchpad/idc/vr-virtual-touchpad-0.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-0.idc \
frameworks/native/services/vr/virtual_touchpad/idc/vr-virtual-touchpad-1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-1.idc
+ifeq (,$(filter %_xr,$(TARGET_PRODUCT)))
+ PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_HARDWARE).rc
+else
+ # XR variants for Pixel devices (e.g. walleye_xr and taimen_xr). Note that
+ # this is a nonintrusive way to add XR-specific init.rc entries, as the
+ # init.hardware.xr.rc file imports the original init.hardware.rc file.
+ PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_HARDWARE).common.rc \
+ $(LOCAL_PATH)/init.hardware.xr.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_HARDWARE).rc
+endif
+
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.$(PRODUCT_HARDWARE).diag.rc
@@ -160,6 +177,7 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \
+ frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
@@ -183,12 +201,9 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
+ frameworks/native/data/etc/android.software.vulkan.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
frameworks/native/data/etc/android.hardware.telephony.carrierlock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.carrierlock.xml \
-# power HAL
-PRODUCT_PACKAGES += \
- android.hardware.power@1.3-service.pixel-libperfmgr
-
# power.stats HAL
PRODUCT_PACKAGES += \
android.hardware.power.stats@1.0-service.pixel
@@ -372,8 +387,8 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PACKAGES += \
android.hardware.drm@1.0-impl:32 \
android.hardware.drm@1.0-service \
- android.hardware.drm@1.2-service.clearkey \
- android.hardware.drm@1.2-service.widevine \
+ android.hardware.drm@1.3-service.clearkey \
+ android.hardware.drm@1.3-service.widevine \
move_widevine_data.sh
# NFC packages
@@ -405,12 +420,15 @@ PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-service \
camera.device@3.2-impl \
camera.msm8998 \
- libgooglecamerahal \
- libgoogle_camera_hal_tests \
libqomx_core \
libmmjpeg_interface \
libmmcamera_interface
+# Google Camera HAL test libraries in debug builds
+PRODUCT_PACKAGES_DEBUG += \
+ libgoogle_camera_hal_proprietary_tests \
+ libgoogle_camera_hal_tests.vendor
+
PRODUCT_PACKAGES += \
sensors.$(PRODUCT_HARDWARE) \
android.hardware.sensors@1.0-impl:64 \
@@ -438,14 +456,6 @@ PRODUCT_PACKAGES += \
android.hardware.boot@1.0-impl.recovery:64 \
android.hardware.boot@1.0-service \
-# Vibrator HAL
-PRODUCT_PACKAGES += \
- android.hardware.vibrator@1.2-service.wahoo
-
-# Thermal HAL
-PRODUCT_PACKAGES += \
- android.hardware.thermal@2.0-service.pixel
-
#GNSS HAL
PRODUCT_PACKAGES += \
gps.conf \
@@ -476,7 +486,8 @@ endif
PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \
wificond \
- libwpa_client
+ libwpa_client \
+ WifiOverlay
LIB_NL := libnl_2
PRODUCT_PACKAGES += $(LIB_NL)
@@ -499,8 +510,8 @@ PRODUCT_PACKAGES += \
audio.bluetooth.default
PRODUCT_PACKAGES += \
- android.hardware.audio@5.0-impl:32 \
- android.hardware.audio.effect@5.0-impl:32 \
+ android.hardware.audio@6.0-impl:32 \
+ android.hardware.audio.effect@6.0-impl:32 \
android.hardware.soundtrigger@2.2-impl:32 \
android.hardware.bluetooth.audio@2.0-impl \
android.hardware.audio@2.0-service
@@ -615,10 +626,14 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
charger_res_images
-# b/36703476
-# Set default log size on userdebug/eng build to 1M
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
-PRODUCT_PROPERTY_OVERRIDES += ro.logd.size=1M
+# b/36703476: Set default log size to 1M
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.logd.size=1M
+# b/114766334: persist all logs by default rotating on 30 files of 1MiB
+PRODUCT_PROPERTY_OVERRIDES += \
+ logd.logpersistd=logcatd \
+ logd.logpersistd.size=30
endif
# Dumpstate HAL
@@ -653,6 +668,9 @@ PRODUCT_PACKAGES += \
PRODUCT_PROPERTY_OVERRIDES += \
ro.telephony.default_cdma_sub=0
+# Set network mode to Global by default and no DSDS/DSDA
+PRODUCT_PROPERTY_OVERRIDES += ro.telephony.default_network=10
+
# Add an extra 10% saturation to display colors
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.sf.color_saturation=1.1
@@ -696,6 +714,10 @@ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
persist.vendor.usb.usbradio.config=diag
endif
+# Vibrator HAL
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.vibrator.hal.closeloop.threshold=20
+
# default atrace HAL
PRODUCT_PACKAGES += \
android.hardware.atrace@1.0-service
@@ -719,3 +741,13 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall
+
+PRODUCT_PRODUCT_PROPERTIES += \
+ ro.charger.enable_suspend=true
+
+include hardware/google/pixel/vibrator/drv2624/device.mk
+include hardware/google/pixel/mm/device_legacy.mk
+include hardware/google/pixel/thermal/device.mk
+
+# power HAL
+-include hardware/google/pixel/power-libperfmgr/hidl/device.mk
diff --git a/dumpstate/Android.mk b/dumpstate/Android.mk
index 6607bf85..d173defc 100644
--- a/dumpstate/Android.mk
+++ b/dumpstate/Android.mk
@@ -30,8 +30,6 @@ LOCAL_SHARED_LIBRARIES := \
libcutils \
libdumpstateutil \
libhidlbase \
- libhidltransport \
- libhwbinder \
liblog \
libutils
diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp
index 4b7e030f..f892f8e9 100755
--- a/dumpstate/DumpstateDevice.cpp
+++ b/dumpstate/DumpstateDevice.cpp
@@ -123,6 +123,7 @@ void DumpstateDevice::dumpModem(int fd, int fdModem)
"/data/vendor/radio/ril_log_old",
"/data/vendor/netmgr/netmgr_log",
"/data/vendor/netmgr/netmgr_log_old",
+ "/data/vendor/radio/omadm_logs.txt",
"/data/vendor/radio/power_anomaly_data.txt",
"/data/vendor/radio/diag_logs/diag_trace.txt",
"/data/vendor/radio/diag_logs/diag_trace_old.txt",
diff --git a/health/Android.bp b/health/Android.bp
index d78a7c04..2fc00205 100644
--- a/health/Android.bp
+++ b/health/Android.bp
@@ -40,8 +40,6 @@ cc_binary {
"libbase",
"libcutils",
"libhidlbase",
- "libhidltransport",
- "libhwbinder",
"libutils",
"android.hardware.health@2.0",
],
diff --git a/health/LearnedCapacityBackupRestore.cpp b/health/LearnedCapacityBackupRestore.cpp
index cf8de8d3..a3111d38 100644
--- a/health/LearnedCapacityBackupRestore.cpp
+++ b/health/LearnedCapacityBackupRestore.cpp
@@ -21,6 +21,7 @@ namespace google {
namespace wahoo {
namespace health {
+static constexpr char kChgFullDesignFile[] = "sys/class/power_supply/bms/charge_full_design";
static constexpr char kChgFullFile[] = "sys/class/power_supply/bms/charge_full";
static constexpr char kSysCFPersistFile[] = "/persist/battery/qcom_charge_full";
static constexpr int kBuffSize = 256;
@@ -29,13 +30,15 @@ LearnedCapacityBackupRestore::LearnedCapacityBackupRestore() : sw_cap_(0), hw_ca
void LearnedCapacityBackupRestore::Restore() {
ReadFromStorage();
+ ReadNominalCapacity();
ReadFromSRAM();
if (sw_cap_ == 0) {
// First backup
sw_cap_ = hw_cap_;
SaveToStorage();
- } else {
- // Always restore backup value
+ } else if (hw_cap_ == nom_cap_) {
+ // Restore backup value when capacity is reset to nominal
+ hw_cap_ = sw_cap_;
SaveToSRAM();
}
}
@@ -74,11 +77,27 @@ void LearnedCapacityBackupRestore::SaveToStorage() {
LOG(ERROR) << "Write file error: " << strerror(errno);
}
+void LearnedCapacityBackupRestore::ReadNominalCapacity() {
+ std::string buffer;
+
+ if (!android::base::ReadFileToString(std::string(kChgFullDesignFile), &buffer)) {
+ LOG(ERROR) << "Read nominal capacity error: " << strerror(errno);
+ return;
+ }
+
+ buffer = android::base::Trim(buffer);
+
+ if (sscanf(buffer.c_str(), "%d", &nom_cap_) < 1)
+ LOG(ERROR) << "Failed to parse nominal capacity: " << buffer;
+ else
+ LOG(INFO) << "nominal capacity: " << buffer;
+}
+
void LearnedCapacityBackupRestore::ReadFromSRAM() {
std::string buffer;
if (!android::base::ReadFileToString(std::string(kChgFullFile), &buffer)) {
- LOG(ERROR) << "Read cycle counter error: " << strerror(errno);
+ LOG(ERROR) << "Read capacity error: " << strerror(errno);
return;
}
diff --git a/health/LearnedCapacityBackupRestore.h b/health/LearnedCapacityBackupRestore.h
index da9e5643..b35396d5 100644
--- a/health/LearnedCapacityBackupRestore.h
+++ b/health/LearnedCapacityBackupRestore.h
@@ -36,9 +36,11 @@ class LearnedCapacityBackupRestore {
private:
int sw_cap_;
int hw_cap_;
+ int nom_cap_;
void ReadFromStorage();
void SaveToStorage();
+ void ReadNominalCapacity();
void ReadFromSRAM();
void SaveToSRAM();
};
diff --git a/init.hardware.rc b/init.hardware.rc
index df15bfdd..8f6c48d0 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -44,6 +44,7 @@ on early-init
# Loading kernel modules in background
start vendor.insmod_sh
+ write /sys/module/dm_verity/parameters/prefetch_cluster 0
on init
# Disable UFS powersaving
write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 0
@@ -93,59 +94,6 @@ on init
write /dev/stune/top-app/schedtune.boost 10
write /dev/stune/top-app/schedtune.prefer_idle 1
- # Setup cpusets used by the VR services.
- mkdir /dev/cpuset/kernel 0750 root system
- write /dev/cpuset/kernel/cpus 0
- write /dev/cpuset/kernel/mems 0
- chown system system /dev/cpuset/kernel/tasks
- chmod 0660 /dev/cpuset/kernel/tasks
-
- mkdir /dev/cpuset/system 0750 root system
- write /dev/cpuset/system/cpus 0
- write /dev/cpuset/system/mems 0
- chown system system /dev/cpuset/system/tasks
- chmod 0660 /dev/cpuset/system/tasks
-
- mkdir /dev/cpuset/system/performance 0750 root system
- write /dev/cpuset/system/performance/cpus 0
- write /dev/cpuset/system/performance/mems 0
- chown system system /dev/cpuset/system/performance/tasks
- chmod 0660 /dev/cpuset/system/performance/tasks
-
- mkdir /dev/cpuset/system/background 0750 root system
- write /dev/cpuset/system/background/cpus 0
- write /dev/cpuset/system/background/mems 0
- chown system system /dev/cpuset/system/background/tasks
- chmod 0660 /dev/cpuset/system/background/tasks
-
- mkdir /dev/cpuset/application 0750 root system
- write /dev/cpuset/application/cpus 0
- write /dev/cpuset/application/mems 0
- chown system system /dev/cpuset/application/tasks
- chmod 0660 /dev/cpuset/application/tasks
-
- mkdir /dev/cpuset/application/performance 0750 root system
- write /dev/cpuset/application/performance/cpus 0
- write /dev/cpuset/application/performance/mems 0
- chown system system /dev/cpuset/application/performance/tasks
- chmod 0660 /dev/cpuset/application/performance/tasks
-
- mkdir /dev/cpuset/application/background 0750 root system
- write /dev/cpuset/application/background/cpus 0
- write /dev/cpuset/application/background/mems 0
- chown system system /dev/cpuset/application/background/tasks
- chmod 0660 /dev/cpuset/application/background/tasks
-
- # Create UDS structure for base VR services.
- mkdir /dev/socket/pdx 0775 system system
- mkdir /dev/socket/pdx/system 0775 system system
- mkdir /dev/socket/pdx/system/buffer_hub 0775 system system
- mkdir /dev/socket/pdx/system/performance 0775 system system
- mkdir /dev/socket/pdx/system/vr 0775 system system
- mkdir /dev/socket/pdx/system/vr/display 0775 system system
- mkdir /dev/socket/pdx/system/vr/pose 0775 system system
- mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
-
# Disable retention
write /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled N
write /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled N
@@ -211,6 +159,7 @@ on late-fs
# Start devices by sysfs trigger
start vendor.devstart_sh
# Start services for bootanim
+ start vendor.power-hal-1-3
start surfaceflinger
start bootanim
start vendor.hwcomposer-2-1
@@ -288,8 +237,6 @@ on zygote-start
chown radio radio /data/vendor/ipa
# Create the directories used by the Wireless subsystem
- mkdir /data/misc/wifi 0770 wifi wifi
- mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
mkdir /data/vendor/wifi 0771 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
@@ -408,6 +355,8 @@ on early-boot
chown system system /sys/class/leds/vibrator/device/ol_lra_period
chown system system /sys/class/leds/vibrator/device/autocal
chown system system /sys/class/leds/vibrator/device/lp_trigger_effect
+ chown system system /sys/class/leds/vibrator/device/lra_wave_shape
+ chown system system /sys/class/leds/vibrator/device/od_clamp
# Permission for LED driver
chown system system /sys/class/leds/red/on_off_ms
@@ -448,17 +397,6 @@ on boot
write /proc/sys/net/core/rmem_max 8388608
write /proc/sys/net/core/wmem_max 8388608
- # Update DVR cpusets to boot-time values.
- write /dev/cpuset/kernel/cpus 0-7
- write /dev/cpuset/system/cpus 0-7
- write /dev/cpuset/system/performance/cpus 0-7
- write /dev/cpuset/system/background/cpus 0-7
- write /dev/cpuset/system/cpus 0-7
- write /dev/cpuset/application/cpus 0-7
- write /dev/cpuset/application/performance/cpus 0-7
- write /dev/cpuset/application/background/cpus 0-7
- write /dev/cpuset/application/cpus 0-7
-
# Bluetooth
chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
@@ -475,9 +413,6 @@ on boot
# Make the ftm4 command node writeable from dumpstate
chown system system /sys/devices/virtual/input/ftm4_touch/cmd
- # ftm4 VR mode
- chown system system /sys/devices/virtual/input/ftm4_touch/vrmode
-
# WLAN debug access
chown system system /d/icnss/stats
@@ -573,15 +508,6 @@ on property:sys.boot_completed=1
write /dev/cpuset/system-background/cpus 0-3
write /dev/cpuset/restricted/cpus 0-3
- # Update DVR cpusets to runtime values.
- write /dev/cpuset/kernel/cpus 2,3
- write /dev/cpuset/system/performance/cpus 6-7
- write /dev/cpuset/system/background/cpus 0-1
- write /dev/cpuset/system/cpus 0-1,6-7
- write /dev/cpuset/application/performance/cpus 4-5
- write /dev/cpuset/application/background/cpus 0-1
- write /dev/cpuset/application/cpus 0-1,4-5
-
# UFS health
chmod 755 /sys/kernel/debug/ufshcd0
chmod 644 /sys/kernel/debug/ufshcd0/err_state
@@ -676,21 +602,6 @@ service vendor.tftp_server /vendor/bin/tftp_server
user root
group root system
-service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
- -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 -dd \
- -g@android:wpa_wlan0
- # we will start as root and wpa_supplicant will switch to user wifi
- # after setting up the capabilities required for WEXT
- # user wifi
- # group wifi inet keystore
- interface android.hardware.wifi.supplicant@1.0::ISupplicant default
- interface android.hardware.wifi.supplicant@1.1::ISupplicant default
- interface android.hardware.wifi.supplicant@1.2::ISupplicant default
- class main
- socket wpa_wlan0 dgram 660 wifi wifi
- disabled
- oneshot
-
service vendor.cnss-daemon /vendor/bin/cnss-daemon -n -l
class late_start
user system
@@ -787,20 +698,12 @@ on property:sys.uidcpupower=0
write /proc/uid_cpupower/enable 0
# bugreport is triggered by holding down volume down, volume up and power
-service bugreport /system/bin/dumpstate -d -p -B -z \
- -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+service bugreport /system/bin/dumpstate -d -p -z
class main
disabled
oneshot
keycodes 114 115 116
-service vendor.chre /vendor/bin/chre
- class late_start
- user system
- group system
- socket chre seqpacket 0660 root system
- shutdown critical
-
service vendor.power_sh /vendor/bin/init.power.sh
class main
user root
@@ -836,31 +739,6 @@ on property:sys.retaildemo.enabled=1
setprop persist.vendor.charge.start.level 30
on property:sys.boot_completed=1
- # Create pixel-trace.
- # At this moment, only mm_event is available. If others want to put more,
- # it should get hard review from pixel-perf-team.
-
- mkdir /sys/kernel/debug/tracing/instances/pixel-trace 755 system system
- chown system system /sys/kernel/debug/tracing/instances/pixel-trace/trace
- chmod 0660 /sys/kernel/debug/tracing/instances/pixel-trace/trace
- chown system system /sys/kernel/debug/tracing/instances/pixel-trace/tracing_on
- chmod 0660 /sys/kernel/debug/tracing/instances/pixel-trace/tracing_on
- write /sys/kernel/debug/tracing/instances/pixel-trace/buffer_size_kb 64
- write /sys/kernel/debug/tracing/instances/pixel-trace/events/mm_event/enable 1
-
-# turns off tracing right before bugreporting to keep more traces
-on property:init.svc.dumpstatez=running
- write /d/tracing/instances/pixel-trace/tracing_on 0
-
-on property:init.svc.dumpstatez=stopped
- write /d/tracing/instances/pixel-trace/tracing_on 1
-
-on property:init.svc.bugreport=running
- write /d/tracing/instances/pixel-trace/tracing_on 0
-
-on property:init.svc.bugreport=stopped
- write /d/tracing/instances/pixel-trace/tracing_on 1
-
# init-fingerprint-sh is for stopping fps_hal after init retry fail serval times
# It keeps running until max init retry or fps_hal running successfully
# vendor.fps_hal restarts until max init retry times
diff --git a/init.hardware.xr.rc b/init.hardware.xr.rc
new file mode 100644
index 00000000..ca00b492
--- /dev/null
+++ b/init.hardware.xr.rc
@@ -0,0 +1,100 @@
+#
+# Copyright (C) 2019 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.
+#
+
+#
+# This file inherits from init.${ro.boot.hardware.platform}.rc plus additional
+# configs only used by XR targets.
+#
+import /vendor/etc/init/hw/init.${ro.hardware}.common.rc
+
+on init
+ # Setup cpusets used by the VR services.
+ mkdir /dev/cpuset/kernel 0750 root system
+ write /dev/cpuset/kernel/cpus 0
+ write /dev/cpuset/kernel/mems 0
+ chown system system /dev/cpuset/kernel/tasks
+ chmod 0660 /dev/cpuset/kernel/tasks
+
+ mkdir /dev/cpuset/system 0750 root system
+ write /dev/cpuset/system/cpus 0
+ write /dev/cpuset/system/mems 0
+ chown system system /dev/cpuset/system/tasks
+ chmod 0660 /dev/cpuset/system/tasks
+
+ mkdir /dev/cpuset/system/performance 0750 root system
+ write /dev/cpuset/system/performance/cpus 0
+ write /dev/cpuset/system/performance/mems 0
+ chown system system /dev/cpuset/system/performance/tasks
+ chmod 0660 /dev/cpuset/system/performance/tasks
+
+ mkdir /dev/cpuset/system/background 0750 root system
+ write /dev/cpuset/system/background/cpus 0
+ write /dev/cpuset/system/background/mems 0
+ chown system system /dev/cpuset/system/background/tasks
+ chmod 0660 /dev/cpuset/system/background/tasks
+
+ mkdir /dev/cpuset/application 0750 root system
+ write /dev/cpuset/application/cpus 0
+ write /dev/cpuset/application/mems 0
+ chown system system /dev/cpuset/application/tasks
+ chmod 0660 /dev/cpuset/application/tasks
+
+ mkdir /dev/cpuset/application/performance 0750 root system
+ write /dev/cpuset/application/performance/cpus 0
+ write /dev/cpuset/application/performance/mems 0
+ chown system system /dev/cpuset/application/performance/tasks
+ chmod 0660 /dev/cpuset/application/performance/tasks
+
+ mkdir /dev/cpuset/application/background 0750 root system
+ write /dev/cpuset/application/background/cpus 0
+ write /dev/cpuset/application/background/mems 0
+ chown system system /dev/cpuset/application/background/tasks
+ chmod 0660 /dev/cpuset/application/background/tasks
+
+ # Create UDS structure for base VR services.
+ mkdir /dev/socket/pdx 0775 system system
+ mkdir /dev/socket/pdx/system 0775 system system
+ mkdir /dev/socket/pdx/system/buffer_hub 0775 system system
+ mkdir /dev/socket/pdx/system/performance 0775 system system
+ mkdir /dev/socket/pdx/system/vr 0775 system system
+ mkdir /dev/socket/pdx/system/vr/display 0775 system system
+ mkdir /dev/socket/pdx/system/vr/pose 0775 system system
+ mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
+
+on boot
+ # Update DVR cpusets to boot-time values.
+ write /dev/cpuset/kernel/cpus 0-7
+ write /dev/cpuset/system/cpus 0-7
+ write /dev/cpuset/system/performance/cpus 0-7
+ write /dev/cpuset/system/background/cpus 0-7
+ write /dev/cpuset/system/cpus 0-7
+ write /dev/cpuset/application/cpus 0-7
+ write /dev/cpuset/application/performance/cpus 0-7
+ write /dev/cpuset/application/background/cpus 0-7
+ write /dev/cpuset/application/cpus 0-7
+
+ # ftm4 VR mode
+ chown system system /sys/devices/virtual/input/ftm4_touch/vrmode
+
+on property:sys.boot_completed=1
+ # Update DVR cpusets to runtime values.
+ write /dev/cpuset/kernel/cpus 2,3
+ write /dev/cpuset/system/performance/cpus 6-7
+ write /dev/cpuset/system/background/cpus 0-1
+ write /dev/cpuset/system/cpus 0-1,6-7
+ write /dev/cpuset/application/performance/cpus 4-5
+ write /dev/cpuset/application/background/cpus 0-1
+ write /dev/cpuset/application/cpus 0-1,4-5
diff --git a/manifest.xml b/manifest.xml
index d708a3cd..8f3dead2 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -2,7 +2,7 @@
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
- <version>5.0</version>
+ <version>6.0</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
@@ -11,7 +11,7 @@
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
- <version>5.0</version>
+ <version>6.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
@@ -20,7 +20,7 @@
<hal format="hidl">
<name>android.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
- <version>2.1</version>
+ <version>2.2</version>
<interface>
<name>IBiometricsFingerprint</name>
<instance>default</instance>
@@ -94,8 +94,6 @@
</interface>
<fqname>@1.2::ICryptoFactory/clearkey</fqname>
<fqname>@1.2::IDrmFactory/clearkey</fqname>
- <fqname>@1.2::ICryptoFactory/widevine</fqname>
- <fqname>@1.2::IDrmFactory/widevine</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.dumpstate</name>
@@ -295,33 +293,6 @@
</interface>
</hal>
<hal format="hidl">
- <name>android.hardware.usb</name>
- <transport>hwbinder</transport>
- <version>1.1</version>
- <interface>
- <name>IUsb</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>android.hardware.usb.gadget</name>
- <transport>hwbinder</transport>
- <version>1.0</version>
- <interface>
- <name>IUsbGadget</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>android.hardware.vibrator</name>
- <transport>hwbinder</transport>
- <version>1.2</version>
- <interface>
- <name>IVibrator</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
<name>android.hardware.weaver</name>
<transport>hwbinder</transport>
<version>1.0</version>
@@ -331,33 +302,6 @@
</interface>
</hal>
<hal format="hidl">
- <name>android.hardware.wifi</name>
- <transport>hwbinder</transport>
- <version>1.3</version>
- <interface>
- <name>IWifi</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>android.hardware.wifi.hostapd</name>
- <transport>hwbinder</transport>
- <version>1.1</version>
- <interface>
- <name>IHostapd</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>android.hardware.wifi.supplicant</name>
- <transport>hwbinder</transport>
- <version>1.2</version>
- <interface>
- <name>ISupplicant</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
<name>com.qualcomm.qti.ims.radio</name>
<transport>hwbinder</transport>
<version>1.1</version>
diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml
index f08fd908..edc19672 100644
--- a/media_codecs_performance.xml
+++ b/media_codecs_performance.xml
@@ -45,6 +45,7 @@
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="35-36" /> <!-- N=32 v93%=1.0 -->
+ <Limit name="measured-frame-rate-720x480" range="5-15" /> <!-- N=12 manual -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="200-206" /> <!-- N=32 v93%=1.0 -->
@@ -74,6 +75,7 @@
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="547-547" /> <!-- N=32 v93%=1.1 -->
+ <Limit name="measured-frame-rate-352x288" range="442-442" /> <!-- N=40 v95%=1.0 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="249-251" /> <!-- N=32 v93%=1.0 -->
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index bec8bb58..e3086921 100755
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -127,6 +127,13 @@
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
+ Wifi P2P interfaces. If the device doesn't want to support tethering over Wifi P2p this
+ should be empty. An example would be "p2p-p2p.*" -->
+ <string-array translatable="false" name="config_tether_wifi_p2p_regexs">
+ <item>"p2p\\d"</item>
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
should be empty. -->
<string-array translatable="false" name="config_tether_bluetooth_regexs">
@@ -201,22 +208,6 @@
<!-- Mask to use when checking skb mark defined in config_networkWakeupPacketMark above. -->
<integer name="config_networkWakeupPacketMask">0x80000000</integer>
- <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
- <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
-
- <!-- Boolean indicating whether 802.11r Fast BSS Transition is enabled on this platform -->
- <bool translatable="false" name="config_wifi_fast_bss_transition_enabled">true</bool>
-
- <!-- Boolean indicating whether the wifi chipset has background scan support -->
- <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
-
- <!-- Integer thresholds, do not connect to APs with RSSI lower than these values -->
- <integer translatable="false" name="config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz">-77</integer>
- <integer translatable="false" name="config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz">-80</integer>
- <!-- Integer thresholds for low network score, should be somewhat less than the entry threshholds -->
- <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz">-80</integer>
- <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz">-83</integer>
-
<!-- Vibrator pattern for feedback about a long screen/key press -->
<integer-array name="config_longPressVibePattern">
<item>8</item>
@@ -230,16 +221,6 @@
<!-- Make things go fast -->
<bool name="config_ui_enableFadingMarquee">false</bool>
- <!-- Wifi driver supports batched scan -->
- <bool translatable="false" name="config_wifi_batched_scan_supported">true</bool>
-
- <!-- Boolean indicating whether or not to revert to default country code when cellular
- radio is unable to find any MCC information to infer wifi country code from -->
- <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">false</bool>
-
- <!-- Boolean indicating whether or not wifi should turn off when emergency call is made -->
- <bool translatable="false" name="config_wifi_turn_off_during_emergency_call">true</bool>
-
<!-- Enable doze mode
ComponentName of a dream to show whenever the system would otherwise have gone to sleep. -->
<string translatable="false" name="config_dozeComponent">com.android.systemui/com.android.systemui.doze.DozeService</string>
@@ -302,13 +283,6 @@
<item>lte:524288,1048576,8388608,262144,524288,4194304</item>
</string-array>
- <!-- Configure wifi tcp buffersizes in the form:
- rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max -->
- <string name="config_wifi_tcp_buffers" translatable="false">524288,2097152,8388608,262144,524288,4194304</string>
-
- <!-- Config SoftAP 2G channel list -->
- <string translatable="false" name="config_wifi_framework_sap_2G_channel_list">6</string>
-
<!-- Config determines whether to update phone object when voice registration
state changes. Voice radio tech change will always trigger an update of
phone object irrespective of this config -->
@@ -324,8 +298,6 @@
<item>"/system/framework/framework.jar"</item>
<item>"/system/framework/oat/arm64/services.odex"</item>
<item>"/system/framework/services.jar"</item>
- <item>"/system/framework/arm64/boot.oat"</item>
- <item>"/system/framework/arm64/boot-core-libart.oat"</item>
<item>"/apex/com.android.art/javalib/core-oj.jar"</item>
<item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/apex/com.android.media/javalib/updatable-media.jar"</item>
@@ -334,12 +306,10 @@
<!-- Should the pinner service pin the Camera application? -->
<bool name="config_pinnerCameraApp">true</bool>
- <!-- List of files pinned by the Pinner Service with the apex boot image b/119800099 -->
- <string-array translatable="false" name="config_apexBootImagePinnerServiceFiles">
+ <!-- List of files pinned by the Pinner Service with the JIT Zygote boot image b/119800099 -->
+ <string-array translatable="false" name="config_jitzygoteBootImagePinnerServiceFiles">
<item>"/system/framework/framework.jar"</item>
<item>"/system/framework/services.jar"</item>
- <item>"/system/framework/arm64/apex.oat"</item>
- <item>"/system/framework/arm64/apex-core-libart.oat"</item>
<item>"/apex/com.android.art/javalib/core-oj.jar"</item>
<item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/apex/com.android.media/javalib/updatable-media.jar"</item>
@@ -359,13 +329,4 @@
<!-- Brand value for attestation of misprovisioned device. -->
<string name="config_misprovisionedBrandValue" translatable="false">htc</string>
-
- <!-- True if the firmware supports connected MAC randomization -->
- <bool name="config_wifi_connected_mac_randomization_supported">true</bool>
-
- <!-- True if the firmware supports Wi-Fi link probing -->
- <bool name="config_wifi_link_probing_supported">true</bool>
-
- <!-- True if the firmware supports p2p MAC randomization -->
- <bool name="config_wifi_p2p_mac_randomization_supported">true</bool>
</resources>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
index fb7e8cbf..7e9d21d0 100644
--- a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
+++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -31,6 +31,13 @@
always-on display) -->
<string name="doze_brightness_sensor_type" translatable="false">com.google.sensor.binned_brightness</string>
+ <!-- Override value to use for proximity sensor. -->
+ <string name="proximity_sensor_type" translatable="false">com.google.sensor.binned_brightness</string>
+
+ <!-- If using proximity_sensor_type, specifies a threshold value to distinguish near and
+ far break points.-->
+ <item name="proximity_sensor_threshold" translatable="false" format="float" type="dimen">1</item>
+
<!-- Doze: can we assume the pickup sensor includes a proximity check? -->
<bool name="doze_pickup_performs_proximity_check">true</bool>
diff --git a/overlay/packages/apps/Bluetooth/res/values/config.xml b/overlay/packages/apps/Bluetooth/res/values/config.xml
deleted file mode 100644
index e4031055..00000000
--- a/overlay/packages/apps/Bluetooth/res/values/config.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (c) 2017, The Linux Foundation. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of The Linux Foundation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--->
-<resources>
- <bool name="profile_supported_sap">true</bool>
- <bool name="profile_supported_hearing_aid">true</bool>
-</resources>
diff --git a/powerstats/Android.bp b/powerstats/Android.bp
index 491498dd..dbda7ddc 100644
--- a/powerstats/Android.bp
+++ b/powerstats/Android.bp
@@ -28,7 +28,6 @@ cc_binary {
"libbase",
"libcutils",
"libhidlbase",
- "libhidltransport",
"libfmq",
"liblog",
"libutils",
diff --git a/powerstats/EaselStateResidencyDataProvider.cpp b/powerstats/EaselStateResidencyDataProvider.cpp
index 6b5bdae8..d32eed7b 100644
--- a/powerstats/EaselStateResidencyDataProvider.cpp
+++ b/powerstats/EaselStateResidencyDataProvider.cpp
@@ -75,8 +75,8 @@ bool EaselStateResidencyDataProvider::getResults(
PowerEntityStateResidencyResult result = {
.powerEntityId = mPowerEntityId,
.stateResidencyData = {{.powerEntityStateId = EASEL_SYNTHETIC_SLEEP_ID,
- .totalStateEntryCount = mTotalOnSnapshotCount,
.totalTimeInStateMs = mTotalNotOnSnapshotCount,
+ .totalStateEntryCount = mTotalOnSnapshotCount,
.lastEntryTimestampMs = 0}}
};
diff --git a/rro_overlays/WifiOverlay/Android.bp b/rro_overlays/WifiOverlay/Android.bp
new file mode 100644
index 00000000..54077654
--- /dev/null
+++ b/rro_overlays/WifiOverlay/Android.bp
@@ -0,0 +1,7 @@
+runtime_resource_overlay {
+ name: "WifiOverlay",
+ theme: "WifiOverlay",
+ certificate: "platform",
+ sdk_version: "current",
+ product_specific: true
+}
diff --git a/rro_overlays/WifiOverlay/AndroidManifest.xml b/rro_overlays/WifiOverlay/AndroidManifest.xml
new file mode 100644
index 00000000..632ac6a4
--- /dev/null
+++ b/rro_overlays/WifiOverlay/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<!-- Pixel specific wifi overlays -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.wifi.resources.pixel"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:hasCode="false" />
+ <overlay
+ android:targetPackage="com.android.wifi.resources"
+ android:targetName="WifiCustomization"
+ android:isStatic="true"
+ android:priority="0"/>
+</manifest>
diff --git a/rro_overlays/WifiOverlay/OWNERS b/rro_overlays/WifiOverlay/OWNERS
new file mode 100644
index 00000000..efe20f15
--- /dev/null
+++ b/rro_overlays/WifiOverlay/OWNERS
@@ -0,0 +1,5 @@
+# People who can approve changes for submission
+etancohen@google.com
+kumaranand@google.com
+kumachang@google.com
+satk@google.com
diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml
new file mode 100644
index 00000000..e7748a66
--- /dev/null
+++ b/rro_overlays/WifiOverlay/res/values/config.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2019 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.
+ */
+-->
+<resources>
+ <!-- Boolean indicating whether the wifi chipset has 5GHz frequency band support -->
+ <bool translatable="false" name="config_wifi5ghzSupport">true</bool>
+
+ <!-- Boolean indicating whether 802.11r Fast BSS Transition is enabled on this platform -->
+ <bool translatable="false" name="config_wifi_fast_bss_transition_enabled">true</bool>
+
+ <!-- Boolean indicating whether the wifi chipset has background scan support -->
+ <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
+
+ <!-- Integer thresholds, do not connect to APs with RSSI lower than these values -->
+ <integer translatable="false" name="config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz">-77</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz">-80</integer>
+ <!-- Integer thresholds for low network score, should be somewhat less than the entry thresholds -->
+ <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz">-80</integer>
+ <integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz">-83</integer>
+
+ <!-- Boolean indicating whether or not to revert to default country code when cellular
+ radio is unable to find any MCC information to infer wifi country code from -->
+ <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">false</bool>
+
+ <!-- Boolean indicating whether or not wifi should turn off when emergency call is made -->
+ <bool translatable="false" name="config_wifi_turn_off_during_emergency_call">true</bool>
+
+ <!-- Configure wifi tcp buffersizes in the form:
+ rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max -->
+ <string name="config_wifi_tcp_buffers" translatable="false">524288,2097152,8388608,262144,524288,4194304</string>
+
+ <!-- Enable ACS (auto channel selection) for Wifi hotspot (SAP) -->
+ <bool translatable="false" name="config_wifi_softap_acs_supported">true</bool>
+
+ <!-- Enable 802.11ac for Wifi hotspot (SAP) -->
+ <bool translatable="false" name="config_wifi_softap_ieee80211ac_supported">true</bool>
+
+ <!-- True if the firmware supports connected MAC randomization -->
+ <bool name="config_wifi_connected_mac_randomization_supported">true</bool>
+
+ <!-- True if the firmware supports p2p MAC randomization -->
+ <bool name="config_wifi_p2p_mac_randomization_supported">true</bool>
+
+ <!-- True if the firmware supports ap MAC randomization -->
+ <bool name="config_wifi_ap_mac_randomization_supported">true</bool>
+
+ <!-- True if the firmware supports Wi-Fi link probing -->
+ <bool name="config_wifi_link_probing_supported">true</bool>
+
+ <!-- Idle Receive current for wifi radio. 0 by default-->
+ <integer translatable="false" name="config_wifi_idle_receive_cur_ma">1</integer>
+
+ <!-- Rx current for wifi radio. 0 by default-->
+ <integer translatable="false" name="config_wifi_active_rx_cur_ma">100</integer>
+
+ <!-- Tx current for wifi radio. 0 by default-->
+ <integer translatable="false" name="config_wifi_tx_cur_ma">250</integer>
+
+ <!-- Operating volatage for wifi radio. 0 by default-->
+ <integer translatable="false" name="config_wifi_operating_voltage_mv">3800</integer>
+
+ <!-- Indicates that a full bugreport should be triggered when wifi diagnostics detects an error on non-user (i.e debug) builds -->
+ <bool translatable="false" name="config_wifi_diagnostics_bugreport_enabled">true</bool>
+
+ <!-- Default access point SSID used for tethering -->
+ <string name="wifi_tether_configure_ssid_default" translatable="false">Pixel</string>
+
+ <!-- Integer indicating maximum hardware supported client number of soft ap -->
+ <integer translatable="false" name="config_wifiHardwareSoftapMaxClientCount">32</integer>
+ <!-- Boolean indicating whether framework needs to set the tx power limit for meeting SAR
+ requirements -->
+ <bool translatable="false" name="config_wifi_framework_enable_sar_tx_power_limit">true</bool>
+</resources>
diff --git a/sepolicy/private/seapp_contexts b/sepolicy/private/seapp_contexts
index 9dde7c20..ef53a3d8 100644
--- a/sepolicy/private/seapp_contexts
+++ b/sepolicy/private/seapp_contexts
@@ -4,3 +4,7 @@ user=system seinfo=platform name=.dataservices domain=dataservice_app type=syste
# Domain for WfcActivation app
user=_app seinfo=wfcactivation name=com.google.android.wfcactivation domain=wfc_activation_app levelFrom=all
+
+# Domain for Sprint Hidden Menu
+user=_app isPrivApp=true seinfo=platform name=com.google.android.hiddenmenu domain=sprint_hidden_menu type=app_data_file levelFrom=all
+
diff --git a/sepolicy/private/sprint_hidden_menu.te b/sepolicy/private/sprint_hidden_menu.te
new file mode 100644
index 00000000..9eb45e7c
--- /dev/null
+++ b/sepolicy/private/sprint_hidden_menu.te
@@ -0,0 +1,9 @@
+type sprint_hidden_menu, domain, coredomain;
+
+app_domain(sprint_hidden_menu)
+net_domain(sprint_hidden_menu)
+
+# Services
+allow sprint_hidden_menu app_api_service:service_manager find;
+allow sprint_hidden_menu qchook_service:service_manager find;
+allow sprint_hidden_menu radio_service:service_manager find;
diff --git a/sepolicy/vendor/app.te b/sepolicy/vendor/app.te
index 036cccd7..43c8bb13 100644
--- a/sepolicy/vendor/app.te
+++ b/sepolicy/vendor/app.te
@@ -1,2 +1,5 @@
# For the camera app
get_prop(appdomain, camera_prop)
+
+dontaudit appdomain sysfs_msm_subsys:dir search;
+dontaudit appdomain sysfs_msm_subsys:file r_file_perms; \ No newline at end of file
diff --git a/sepolicy/vendor/bootanim.te b/sepolicy/vendor/bootanim.te
index ab76d057..4ac529b4 100644
--- a/sepolicy/vendor/bootanim.te
+++ b/sepolicy/vendor/bootanim.te
@@ -8,3 +8,6 @@ dontaudit bootanim system_data_file:dir read;
# TODO(b/37205419): Remove upon resolution
dontaudit bootanim kernel:system module_request;
+
+dontaudit bootanim sysfs_msm_subsys:dir search;
+dontaudit bootanim sysfs_msm_subsys:file r_file_perms; \ No newline at end of file
diff --git a/sepolicy/vendor/cameraserver.te b/sepolicy/vendor/cameraserver.te
index b9adc4c5..50854562 100644
--- a/sepolicy/vendor/cameraserver.te
+++ b/sepolicy/vendor/cameraserver.te
@@ -8,4 +8,7 @@ allow cameraserver sysfs_camera:dir search;
allow cameraserver system_server:unix_stream_socket { read write };
+dontaudit cameraserver sysfs_msm_subsys:dir search;
+dontaudit cameraserver sysfs_msm_subsys:file r_file_perms;
+
binder_call(cameraserver, mediacodec)
diff --git a/sepolicy/vendor/certs/com_google_mds.x509.pem b/sepolicy/vendor/certs/com_google_mds.x509.pem
new file mode 100644
index 00000000..640c6fb9
--- /dev/null
+++ b/sepolicy/vendor/certs/com_google_mds.x509.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIF1TCCA72gAwIBAgIVAPZ4KZV2jpxRBCoVAidCu62l3cDqMA0GCSqGSIb3DQEBCwUAMHsxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQw
+EgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEXMBUGA1UEAwwOY29tX2dvb2ds
+ZV9tZHMwHhcNMTkwNDIyMTQ1NzA1WhcNNDkwNDIyMTQ1NzA1WjB7MQswCQYDVQQGEwJVUzETMBEG
+A1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xl
+IEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxFzAVBgNVBAMMDmNvbV9nb29nbGVfbWRzMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqgNC0hhI3NzaPUllJfe01hCTuEpl35D02+DKJ5prPFxv
+6KGTk6skjZOwV87Zf2pyj/cbnv28ioDjwvqMBe4ntFdKtH9gl2tTAVl69HMKXF4Iny/wnrt2mxzh
+WxFUd5PuW+mWug+UQw/NGUuaf5d/yys/RrchHKM1+zBV6aOzH6BXiwDoOF2i43d5GlNQ/tFuMySW
+LJftJN0QULFelxNDFFJZhw2P3c4opxjmF2yCoIiDfBEIhTZFKUbHX6YDLXmtUpXl35q+cxK4TCxP
+URyzwdfiyheF3TTxagfzhvXNg/ifrY67S4qCGfzoEMPxrTz02gS0u3D6r/2+hl9vAJChLKDNdIs6
+TqIw+YnABrELiZLLFnaABnjQ7xC3xv1s3W6dWxaxnoVMtC1YvdgwhC5gSpJ4A+AGcCLv96hoeB1I
+IoGV9Yt0Z97MFpXeHFpAxFZ1F9feBqwOCDbu50dmdKZvqGHZ4Ts3uy7ukDQ08dquHpT+NmqkmmW5
+GGhkuyZS3HHpU/QeVsZiyJCJBbDe5lz6NGXK56ruuF9ILeGHtldjQm40oYRc01ESScyVjSU0kpMO
+C7hn1B7rKAm8xxG7eH04ieQrNnbbee7atOO4C3157W5CqujfLMeo6OCRVtcYkYIuSi8hIPNySu/q
+OaEtEP4owVNZR0H6mCHy5pANsyBofMkCAwEAAaNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQU
+gk8pmLx8yP3RILwR5am1G10PBEowHwYDVR0jBBgwFoAUgk8pmLx8yP3RILwR5am1G10PBEowDQYJ
+KoZIhvcNAQELBQADggIBAC9iQ1huo6CzjcsB1IIw3WYPYVfHtvG7fiB49QO6cjth8fxM36YOxnMz
+K9Zh89cnFx7BeXG4MdbR3lAWO+wTbEpM/5azAQfqHB/ZEEAo1THtqS58C1bTwJ5zxkA+wL/x1ucT
+EV0QZtPHC1K5nIV5FuICiJjui5FHfj2HYu2A5a5729rdZ7sL8Vgx6TUFKpEPs5iCrlx5X/E+/wJa
+DM5iIjVvrGJJq0VWHHeDJEE+Sw1CDxWYRzvu1WvCvhk149hf4LlfrR0A5t8QJRGx0WwF10DLGgJx
+7epMBpzhMIXc529FTIx4Rx2PcufjTZC9EN7PkLgVfYahWEkt/YIfV/0F6U6viLxdNC5O0pimSV57
+vT6HIthX1OC34eZca0cPqH1kOuhRDKOhbP4yIgdYX6knpvw8aXsYcyTfAmDyrt0EWffeBPedaxMo
+xfijdlsBQUymviUQ8qBbfl1Ew9VoC+VEsiobK7Ubog0IK+82LQ7FOLMoNYnhk5wJ63i1kVvBVAgH
+64PMME2KG//BwYFfKK6jUXibabyNke72+1Jr0xpw1BHJPxNJ8Q8yCBLF0wmXmFJSM+9lSDd10Bni
+FJeMFMQ0T1Sf8GUSIxYYbMK5pDguRs+JOYkUID02ylJ3L6GAnxXCjGWzpdxw29/WWJc+qsYFEIbP
+kKzTUNQHaaLHmcLK22Ht
+-----END CERTIFICATE-----
diff --git a/sepolicy/vendor/device.te b/sepolicy/vendor/device.te
index b6834533..205526bf 100644
--- a/sepolicy/vendor/device.te
+++ b/sepolicy/vendor/device.te
@@ -7,7 +7,6 @@ type dsp_device, dev_type;
type easel_device, dev_type;
type hbtp_device, dev_type;
type ipa_dev, dev_type;
-type latency_device, dev_type;
type modem_block_device, dev_type;
type persist_block_device, dev_type;
type pn81a_device, dev_type;
diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te
index 8e8e364d..f20ed1de 100644
--- a/sepolicy/vendor/file.te
+++ b/sepolicy/vendor/file.te
@@ -19,6 +19,7 @@ type sysfs_usb_c, sysfs_type, fs_type;
type sysfs_usb_device, sysfs_type, fs_type;
# b/70518189 vDSO experiments
type sysfs_vdso, fs_type, sysfs_type;
+type sysfs_wifi_conmode, sysfs_type, fs_type;
type debugfs_clk, debugfs_type, fs_type;
type debugfs_ion, debugfs_type, fs_type;
diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts
index acfa52df..a670a1c1 100644
--- a/sepolicy/vendor/file_contexts
+++ b/sepolicy/vendor/file_contexts
@@ -9,7 +9,6 @@
/dev/ipa u:object_r:ipa_dev:s0
/dev/wwan_ioctl u:object_r:ipa_dev:s0
/dev/ipaNatTable u:object_r:ipa_dev:s0
-/dev/cpu_dma_latency u:object_r:latency_device:s0
/dev/rmnet_ctrl.* u:object_r:rmnet_device:s0
/dev/at_.* u:object_r:at_device:s0
/dev/video([0-9])+ u:object_r:video_device:s0
@@ -167,7 +166,6 @@
/vendor/bin/oemlock_provision u:object_r:hal_bootctl_default_exec:s0
/vendor/bin/oemlock-bridge u:object_r:hal_bootctl_default_exec:s0
/vendor/bin/hw/android\.hardware\.usb@1\.1-service\.wahoo u:object_r:hal_usb_impl_exec:s0
-/vendor/bin/hw/android\.hardware\.power@1\.3-service\.pixel-libperfmgr u:object_r:hal_power_default_exec:s0
/vendor/bin/hw/android\.hardware\.power\.stats@1\.0-service\.pixel u:object_r:hal_power_stats_default_exec:s0
/vendor/bin/chre u:object_r:chre_exec:s0
/vendor/bin/time_daemon u:object_r:time_daemon_exec:s0
@@ -178,22 +176,20 @@
/vendor/etc/init\.insmod\.cfg u:object_r:init-insmod-sh_exec:s0
/vendor/bin/init\.power\.sh u:object_r:init_power_exec:s0
/vendor/bin/init\.radio\.sh u:object_r:init_radio_exec:s0
-/vendor/bin/thermal_logd u:object_r:init-thermal-logging-sh_exec:s0
/vendor/bin/ramoops u:object_r:ramoops_exec:s0
/vendor/bin/init\.ramoops\.sh u:object_r:ramoops_exec:s0
/vendor/bin/init\.fingerprint\.sh u:object_r:init-fingerprint_exec:s0
+/vendor/bin/wifi_sniffer u:object_r:wifi_sniffer_exec:s0
/vendor/bin/hw/android\.hardware\.bluetooth@1\.0-service-qti u:object_r:hal_bluetooth_default_exec:s0
/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service\.clearkey u:object_r:hal_drm_clearkey_exec:s0
/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service-lazy\.clearkey u:object_r:hal_drm_clearkey_exec:s0
/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service\.widevine u:object_r:hal_drm_widevine_exec:s0
/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service-lazy\.widevine u:object_r:hal_drm_widevine_exec:s0
-/vendor/bin/hw/android\.hardware\.vibrator@1\.2-service\.wahoo u:object_r:hal_vibrator_default_exec:s0
/vendor/bin/hw/android\.hardware\.health@2\.0-service\.wahoo u:object_r:hal_health_default_exec:s0
/vendor/bin/hw/android\.hardware\.keymaster@3\.0-service-qti u:object_r:hal_keymaster_qti_exec:s0
/vendor/bin/hw/android\.hardware\.gatekeeper@1\.0-service-qti u:object_r:hal_gatekeeper_qti_exec:s0
/vendor/bin/hw/android\.hardware\.gnss@1\.0-service-qti u:object_r:hal_gnss_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.thermal@2\.0-service\.pixel u:object_r:hal_thermal_default_exec:s0
###############################################
# same-process HAL files and their dependencies
@@ -207,7 +203,7 @@
/vendor/lib(64)?/libadreno_utils\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libgsl\.so u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.msm8998\.so u:object_r:same_process_hal_file:s0
+/vendor/lib(64)?/hw/vulkan\.adreno\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/egl/libEGL_adreno\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/egl/libGLESv1_CM_adreno\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/egl/libGLESv2_adreno\.so u:object_r:same_process_hal_file:s0
diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts
index 300db861..6d6767ee 100644
--- a/sepolicy/vendor/genfs_contexts
+++ b/sepolicy/vendor/genfs_contexts
@@ -46,8 +46,6 @@ genfscon sysfs /devices/soc/soc:qcom,ipa_fws@1e08000 u:object
genfscon sysfs /devices/soc/cce0000.qcom,venus u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/soc/0.qcom,rmtfs_sharedmem u:object_r:sysfs_rmtfs:s0
genfscon sysfs /devices/soc/soc:fp_fpc1020 u:object_r:sysfs_fingerprint:s0
-genfscon sysfs /class/thermal u:object_r:sysfs_thermal:s0
-genfscon sysfs /devices/virtual/thermal u:object_r:sysfs_thermal:s0
genfscon sysfs /devices/virtual/wahoo_laser u:object_r:sysfs_laser:s0
genfscon sysfs /module/msm_thermal u:object_r:sysfs_thermal:s0
genfscon sysfs /module/printk/parameters/console_suspend u:object_r:sysfs_console_suspend:s0
@@ -64,6 +62,7 @@ genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:
genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply u:object_r:sysfs_batteryinfo:s0
genfscon sysfs /bus/msm_subsys u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /module/subsystem_restart u:object_r:sysfs_msm_subsys_restart:s0
+genfscon sysfs /module/wlan/parameters/con_mode u:object_r:sysfs_wifi_conmode:s0
genfscon sysfs /kernel/boot_adsp/boot u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /kernel/boot_slpi/boot u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /kernel/wifi/wlan u:object_r:sysfs_msm_wlan:s0
diff --git a/sepolicy/vendor/hal_graphics_allocator_default.te b/sepolicy/vendor/hal_graphics_allocator_default.te
index 102fe8b3..09333d1f 100644
--- a/sepolicy/vendor/hal_graphics_allocator_default.te
+++ b/sepolicy/vendor/hal_graphics_allocator_default.te
@@ -1 +1,4 @@
dontaudit hal_graphics_allocator_default kernel:system module_request;
+
+dontaudit hal_graphics_allocator_default sysfs_msm_subsys:dir search;
+dontaudit hal_graphics_allocator_default sysfs_msm_subsys:file r_file_perms; \ No newline at end of file
diff --git a/sepolicy/vendor/hal_power_default.te b/sepolicy/vendor/hal_power_default.te
index 7e6f60d3..b5b7a7a2 100644
--- a/sepolicy/vendor/hal_power_default.te
+++ b/sepolicy/vendor/hal_power_default.te
@@ -4,15 +4,10 @@ allow hal_power_default sysfs_graphics:file r_file_perms;
# To do powerhint on nodes defined in powerhint.json
allow hal_power_default sysfs_msm_subsys:dir search;
allow hal_power_default sysfs_msm_subsys:file rw_file_perms;
-allow hal_power_default sysfs_devices_system_cpu:file rw_file_perms;
-allow hal_power_default latency_device:chr_file rw_file_perms;
allow hal_power_default cgroup:dir search;
allow hal_power_default cgroup:file rw_file_perms;
allow hal_power_default sysfs_touch:file w_file_perms;
allow hal_power_default sysfs_touch:dir search;
-# To get/set powerhal state property
-set_prop(hal_power_default, power_prop)
-
# interact with thermal_config
-set_prop(hal_power_default, thermal_prop)
+set_prop(hal_power_default, vendor_thermal_prop)
diff --git a/sepolicy/vendor/hal_thermal_default.te b/sepolicy/vendor/hal_thermal_default.te
deleted file mode 100644
index 13c129f6..00000000
--- a/sepolicy/vendor/hal_thermal_default.te
+++ /dev/null
@@ -1,7 +0,0 @@
-allow hal_thermal_default sysfs_thermal:dir r_dir_perms;
-allow hal_thermal_default sysfs_thermal:file r_file_perms;
-allow hal_thermal_default sysfs_thermal:lnk_file read;
-allow hal_thermal_default proc_stat:file r_file_perms;
-
-# read thermal_config
-get_prop(hal_thermal_default, thermal_prop)
diff --git a/sepolicy/vendor/init-thermal-logging.sh.te b/sepolicy/vendor/init-thermal-logging.sh.te
deleted file mode 100644
index 3da540e3..00000000
--- a/sepolicy/vendor/init-thermal-logging.sh.te
+++ /dev/null
@@ -1,10 +0,0 @@
-type init-thermal-logging-sh, domain;
-type init-thermal-logging-sh_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(init-thermal-logging-sh)
-
-userdebug_or_eng(`
- allow init-thermal-logging-sh vendor_toolbox_exec:file rx_file_perms;
- allow init-thermal-logging-sh sysfs_thermal:dir r_dir_perms;
- allow init-thermal-logging-sh sysfs_thermal:file r_file_perms;
-')
diff --git a/sepolicy/vendor/keys.conf b/sepolicy/vendor/keys.conf
index c0e83857..28fb0620 100644
--- a/sepolicy/vendor/keys.conf
+++ b/sepolicy/vendor/keys.conf
@@ -22,3 +22,6 @@ ALL : device/google/wahoo/sepolicy/vendor/certs/arcore_release.x509.pem
ENG : device/google/wahoo/sepolicy/vendor/certs/arcore.x509.pem
USERDEBUG : device/google/wahoo/sepolicy/vendor/certs/arcore.x509.pem
USER : device/google/wahoo/sepolicy/vendor/certs/arcore_userdev.x509.pem
+
+[@MDS]
+ALL : device/google/wahoo/sepolicy/vendor/certs/com_google_mds.x509.pem
diff --git a/sepolicy/vendor/mac_permissions.xml b/sepolicy/vendor/mac_permissions.xml
index 3752a38b..3913a5e1 100644
--- a/sepolicy/vendor/mac_permissions.xml
+++ b/sepolicy/vendor/mac_permissions.xml
@@ -42,4 +42,7 @@
<signer signature="@ARCORE_DEV" >
<seinfo value="arcore" />
</signer>
+ <signer signature="@MDS" >
+ <seinfo value="mds" />
+ </signer>
</policy>
diff --git a/sepolicy/private/mediaswcodec.te b/sepolicy/vendor/mediaswcodec.te
index 36907500..36907500 100644
--- a/sepolicy/private/mediaswcodec.te
+++ b/sepolicy/vendor/mediaswcodec.te
diff --git a/sepolicy/vendor/omadm.te b/sepolicy/vendor/omadm.te
new file mode 100644
index 00000000..dadb4d96
--- /dev/null
+++ b/sepolicy/vendor/omadm.te
@@ -0,0 +1,10 @@
+# OMADM app
+type omadm_app, domain;
+
+app_domain(omadm_app)
+net_domain(omadm_app)
+
+allow omadm_app app_api_service:service_manager find;
+allow omadm_app radio_vendor_data_file:dir rw_dir_perms;
+allow omadm_app radio_vendor_data_file:file create_file_perms;
+allow omadm_app radio_service:service_manager find;
diff --git a/sepolicy/vendor/property.te b/sepolicy/vendor/property.te
index f6628b03..845876ab 100644
--- a/sepolicy/vendor/property.te
+++ b/sepolicy/vendor/property.te
@@ -11,12 +11,10 @@ type vendor_ssr_prop, property_type;
type cnss_diag_prop, property_type;
type tee_listener_prop, property_type;
type wc_prop, property_type;
-type thermal_prop, property_type;
type modem_diag_prop, property_type;
type sys_time_prop, property_type;
type atfwd_start_prop, property_type;
type bluetooth_log_prop, property_type;
-type power_prop, property_type;
type vendor_bluetooth_prop, property_type;
type vendor_net_radio_prop, property_type;
type vendor_radio_prop, property_type;
@@ -25,6 +23,7 @@ type vendor_usb_config_prop, property_type;
type vendor_charge_prop, property_type;
type vendor_nfc_prop, property_type;
type vendor_ramoops_prop, property_type;
+type vendor_wifi_sniffer_prop, property_type;
# fingerprint
type vendor_fingerprint_prop, property_type;
diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts
index 4e1447b7..65f340c1 100644
--- a/sepolicy/vendor/property_contexts
+++ b/sepolicy/vendor/property_contexts
@@ -17,18 +17,12 @@ vendor.debug.ssrdump u:object_r:vendor_ssr_prop:s0
persist.sys.cnss. u:object_r:cnss_diag_prop:s0
sys.listeners.registered u:object_r:tee_listener_prop:s0
wc_transport. u:object_r:wc_prop:s0
-vendor.qcom.thermalcfg u:object_r:thermal_prop:s0
-vendor.thermal.config u:object_r:thermal_prop:s0
+vendor.qcom.thermalcfg u:object_r:vendor_thermal_prop:s0
persist.sys.modem.diag. u:object_r:modem_diag_prop:s0
sys.modem.diag. u:object_r:modem_diag_prop:s0
sys.time.set u:object_r:sys_time_prop:s0
persist.radio.atfwd.start u:object_r:atfwd_start_prop:s0
sys.logger.bluetooth u:object_r:bluetooth_log_prop:s0
-vendor.powerhal.state u:object_r:power_prop:s0
-vendor.powerhal.audio u:object_r:power_prop:s0
-vendor.powerhal.lpm u:object_r:power_prop:s0
-vendor.powerhal.init u:object_r:power_prop:s0
-vendor.powerhal.rendering u:object_r:power_prop:s0
vendor.wlan.driver.version u:object_r:vendor_wifi_version:s0
vendor.wlan.firmware.version u:object_r:vendor_wifi_version:s0
persist.vendor.usb.config u:object_r:vendor_usb_config_prop:s0
@@ -173,9 +167,12 @@ ro.radio.log_prefix u:object_r:vendor_default_prop:s0
ro.rfkilldisabled u:object_r:vendor_default_prop:s0
ro.vendor.build.svn u:object_r:vendor_default_prop:s0
ro.vendor.extension_library u:object_r:vendor_default_prop:s0
-ro.vibrator.hal.click.duration u:object_r:vendor_default_prop:s0
-ro.vibrator.hal.tick.duration u:object_r:vendor_default_prop:s0
-ro.vibrator.hal.heavyclick.duration u:object_r:vendor_default_prop:s0
+ro.vibrator.hal.closeloop.threshold u:object_r:vendor_default_prop:s0
+ro.vibrator.hal.config.dynamic u:object_r:vendor_default_prop:s0
+ro.vibrator.hal.click.duration u:object_r:vendor_default_prop:s0
+ro.vibrator.hal.tick.duration u:object_r:vendor_default_prop:s0
+ro.vibrator.hal.heavyclick.duration u:object_r:vendor_default_prop:s0
+ro.vibrator.hal.double_click.duration u:object_r:vendor_default_prop:s0
sdm. u:object_r:vendor_default_prop:s0
sys.disable_ext_animation u:object_r:vendor_default_prop:s0
sys.display.low_persistence_mode_brightness u:object_r:vendor_default_prop:s0
@@ -224,3 +221,8 @@ vendor.ramoops. u:object_r:vendor_ramoops_prop:s0
# fingerprint
vendor.fps.init.succeed u:object_r:vendor_fingerprint_prop:s0
vendor.fps.init_retry.count u:object_r:vendor_fingerprint_prop:s0
+
+# wifi_sniffer
+persist.vendor.wifi.sniffer.freq u:object_r:vendor_wifi_sniffer_prop:s0
+persist.vendor.wifi.sniffer.bandwidth u:object_r:vendor_wifi_sniffer_prop:s0
+vendor.wifi.sniffer.start u:object_r:vendor_wifi_sniffer_prop:s0
diff --git a/sepolicy/vendor/seapp_contexts b/sepolicy/vendor/seapp_contexts
index e1f512c9..68ba5857 100644
--- a/sepolicy/vendor/seapp_contexts
+++ b/sepolicy/vendor/seapp_contexts
@@ -1,7 +1,7 @@
user=system seinfo=platform name=com.google.SSRestartDetector domain=ssr_detector_app type=system_app_data_file
user=_app seinfo=platform name=com.android.pixellogger domain=logger_app type=app_data_file levelFrom=all
user=_app seinfo=platform name=com.android.ramdump domain=ramdump_app type=app_data_file levelFrom=all
-user=_app seinfo=google name=com.google.mds domain=mds_app type=app_data_file levelFrom=all
+user=_app seinfo=mds name=com.google.mds domain=mds_app type=app_data_file levelFrom=all
#TODO Remove user "system" when b/63588267 is resolved
user=system seinfo=platform name=com.qualcomm.telephony domain=qtelephony type=system_app_data_file
@@ -30,3 +30,6 @@ user=_app seinfo=easel name=com.google.android.imaging.easel.service domain=ease
#Domain for connectivity monitor
user=_app isPrivApp=true seinfo=platform name=com.google.android.connectivitymonitor domain=con_monitor_app type=app_data_file levelFrom=all
+
+#Domain for omadm
+user=_app isPrivApp=true seinfo=platform name=com.android.omadm.service domain=omadm_app type=app_data_file levelFrom=all
diff --git a/sepolicy/vendor/surfaceflinger.te b/sepolicy/vendor/surfaceflinger.te
index 636d98b4..a1282bc4 100644
--- a/sepolicy/vendor/surfaceflinger.te
+++ b/sepolicy/vendor/surfaceflinger.te
@@ -5,3 +5,6 @@ allow surfaceflinger debugfs_ion:dir search;
typeattribute surfaceflinger system_writes_vendor_properties_violators;
set_prop(surfaceflinger, public_vendor_system_prop)
+
+dontaudit surfaceflinger sysfs_msm_subsys:dir search;
+dontaudit surfaceflinger sysfs_msm_subsys:file r_file_perms; \ No newline at end of file
diff --git a/sepolicy/vendor/system_server.te b/sepolicy/vendor/system_server.te
index d7b84619..13b64dbc 100644
--- a/sepolicy/vendor/system_server.te
+++ b/sepolicy/vendor/system_server.te
@@ -23,3 +23,6 @@ typeattribute system_server system_writes_vendor_properties_violators;
set_prop(system_server, public_vendor_system_prop)
dontaudit system_server self:capability sys_module;
+
+dontaudit system_server sysfs_msm_subsys:dir search;
+dontaudit system_server sysfs_msm_subsys:file r_file_perms; \ No newline at end of file
diff --git a/sepolicy/vendor/vendor_init.te b/sepolicy/vendor/vendor_init.te
index fd786118..cd1bc497 100644
--- a/sepolicy/vendor/vendor_init.te
+++ b/sepolicy/vendor/vendor_init.te
@@ -22,18 +22,15 @@ userdebug_or_eng(`
set_prop(vendor_init, vendor_bluetooth_prop)
set_prop(vendor_init, camera_prop)
set_prop(vendor_init, modem_diag_prop)
-set_prop(vendor_init, power_prop)
+set_prop(vendor_init, vendor_power_prop)
set_prop(vendor_init, public_vendor_default_prop)
set_prop(vendor_init, vendor_radio_prop)
-set_prop(vendor_init, thermal_prop)
+set_prop(vendor_init, vendor_thermal_prop)
set_prop(vendor_init, vendor_charge_prop)
dontaudit vendor_init unlabeled:dir getattr;
dontaudit vendor_init unlabeled:file getattr;
-allow vendor_init debugfs_tracing_instances:dir create_dir_perms;
-allow vendor_init debugfs_tracing_instances:file w_file_perms;
-
# Write to touch vrmode node
allow vendor_init sysfs_touch:file w_file_perms;
diff --git a/sepolicy/vendor/wifi_sniffer.te b/sepolicy/vendor/wifi_sniffer.te
new file mode 100644
index 00000000..70cfa319
--- /dev/null
+++ b/sepolicy/vendor/wifi_sniffer.te
@@ -0,0 +1,20 @@
+type wifi_sniffer, domain;
+type wifi_sniffer_exec, exec_type, vendor_file_type, file_type;
+
+userdebug_or_eng(`
+ # make transition from init to its domain
+ init_daemon_domain(wifi_sniffer)
+ net_domain(wifi_sniffer)
+
+# configurate con mode
+ allow wifi_sniffer self:capability { net_admin net_raw };
+ allow wifi_sniffer sysfs_wifi_conmode:file rw_file_perms;
+
+# interface up
+ allowxperm wifi_sniffer self:udp_socket ioctl SIOCSIFFLAGS;
+ allow wifi_sniffer self:netlink_generic_socket create_socket_perms_no_ioctl;
+
+ get_prop(wifi_sniffer, vendor_wifi_sniffer_prop)
+
+ dontaudit wifi_sniffer debugfs_wlan:dir search;
+')
diff --git a/system.prop b/system.prop
index 209ac73a..ecbb24cf 100644
--- a/system.prop
+++ b/system.prop
@@ -10,9 +10,6 @@ persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
DEVICE_PROVISIONED=1
-# Set network mode to Global by default and no DSDS/DSDA
-ro.telephony.default_network=10
-
debug.sf.hw=1
debug.gralloc.enable_fb_ubwc=1
diff --git a/usb/Android.bp b/usb/Android.bp
index 258c436b..d5fda661 100644
--- a/usb/Android.bp
+++ b/usb/Android.bp
@@ -16,17 +16,21 @@ cc_binary {
name: "android.hardware.usb@1.1-service.wahoo",
relative_install_path: "hw",
init_rc: ["android.hardware.usb@1.1-service.wahoo.rc"],
+ vintf_fragments: [
+ "android.hardware.usb@1.1-service.wahoo.xml",
+ "android.hardware.usb.gadget@1.1-service.wahoo.xml",
+ ],
srcs: ["service.cpp", "Usb.cpp", "UsbGadget.cpp"],
shared_libs: [
"libbase",
"libhidlbase",
- "libhidltransport",
"liblog",
"libutils",
"libhardware",
"android.hardware.usb@1.0",
"android.hardware.usb@1.1",
"android.hardware.usb.gadget@1.0",
+ "android.hardware.usb.gadget@1.1",
"libcutils",
],
proprietary: true,
diff --git a/usb/UsbGadget.cpp b/usb/UsbGadget.cpp
index 66ac85e5..e407c490 100644
--- a/usb/UsbGadget.cpp
+++ b/usb/UsbGadget.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#define LOG_TAG "android.hardware.usb.gadget@1.0-service.wahoo"
+#define LOG_TAG "android.hardware.usb.gadget@1.1-service.wahoo"
#include "UsbGadget.h"
#include <dirent.h>
@@ -57,7 +57,7 @@ namespace android {
namespace hardware {
namespace usb {
namespace gadget {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
volatile bool gadgetPullup;
@@ -258,6 +258,15 @@ V1_0::Status UsbGadget::tearDownGadget() {
return Status::SUCCESS;
}
+Return<Status> UsbGadget::reset() {
+ if (!WriteStringToFile("none", PULLUP_PATH)) {
+ ALOGI("Gadget cannot be pulled down");
+ return Status::ERROR;
+ }
+
+ return Status::SUCCESS;
+}
+
static int linkFunction(const char *function, int index) {
char functionPath[MAX_FILE_PATH_LENGTH];
char link[MAX_FILE_PATH_LENGTH];
@@ -311,18 +320,24 @@ static V1_0::Status validateAndSetVidPid(uint64_t functions) {
if (vendorFunctions == "diag") {
ret = setVidPid("0x05C6", "0x901B");
} else {
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee1");
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee1");
+ }
}
break;
case GadgetFunction::ADB | GadgetFunction::MTP:
if (vendorFunctions == "diag") {
ret = setVidPid("0x05C6", "0x903A");
} else {
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee2");
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee2");
+ }
}
break;
case static_cast<uint64_t>(GadgetFunction::RNDIS):
@@ -331,9 +346,12 @@ static V1_0::Status validateAndSetVidPid(uint64_t functions) {
} else if (vendorFunctions == "serial_cdev,diag") {
ret = setVidPid("0x05C6", "0x90B5");
} else {
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee3");
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee3");
+ }
}
break;
case GadgetFunction::ADB | GadgetFunction::RNDIS:
@@ -342,21 +360,30 @@ static V1_0::Status validateAndSetVidPid(uint64_t functions) {
} else if (vendorFunctions == "serial_cdev,diag") {
ret = setVidPid("0x05C6", "0x90B6");
} else {
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee4");
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee4");
+ }
}
break;
case static_cast<uint64_t>(GadgetFunction::PTP):
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee5");
- break;
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee5");
+ }
+ break;
case GadgetFunction::ADB | GadgetFunction::PTP:
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee6");
- break;
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee6");
+ }
+ break;
case static_cast<uint64_t>(GadgetFunction::ADB):
if (vendorFunctions == "diag") {
ret = setVidPid("0x05C6", "0x901D");
@@ -365,21 +392,30 @@ static V1_0::Status validateAndSetVidPid(uint64_t functions) {
} else if (vendorFunctions == "diag,serial_cdev") {
ret = setVidPid("0x05C6", "0x901F");
} else {
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee7");
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee7");
+ }
}
break;
case static_cast<uint64_t>(GadgetFunction::MIDI):
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee8");
- break;
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee8");
+ }
+ break;
case GadgetFunction::ADB | GadgetFunction::MIDI:
- if (!(vendorFunctions == "user" || vendorFunctions == ""))
- ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
- ret = setVidPid("0x18d1", "0x4ee9");
- break;
+ if (!(vendorFunctions == "user" || vendorFunctions == "")) {
+ ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
+ ret = Status::CONFIGURATION_NOT_SUPPORTED;
+ } else {
+ ret = setVidPid("0x18d1", "0x4ee9");
+ }
+ break;
case static_cast<uint64_t>(GadgetFunction::ACCESSORY):
if (!(vendorFunctions == "user" || vendorFunctions == ""))
ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str());
@@ -502,6 +538,8 @@ V1_0::Status UsbGadget::setupFunctions(
if ((functions & GadgetFunction::ADB) != 0) {
ffsEnabled = true;
ALOGI("setCurrentUsbFunctions Adb");
+ if (!WriteStringToFile("1", DESC_USE_PATH))
+ return Status::ERROR;
if (inotify_add_watch(inotifyFd, "/dev/usb-ffs/adb/", IN_ALL_EVENTS) == -1)
return Status::ERROR;
@@ -616,7 +654,7 @@ error:
return Void();
}
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace gadget
} // namespace usb
} // namespace hardware
diff --git a/usb/UsbGadget.h b/usb/UsbGadget.h
index 9a2c4dd3..3d302332 100644
--- a/usb/UsbGadget.h
+++ b/usb/UsbGadget.h
@@ -14,29 +14,28 @@
* limitations under the License.
*/
-#ifndef ANDROID_HARDWARE_USB_GADGET_V1_0_USBGADGET_H
-#define ANDROID_HARDWARE_USB_GADGET_V1_0_USBGADGET_H
+#pragma once
#include <android-base/file.h>
#include <android-base/properties.h>
#include <android-base/unique_fd.h>
-#include <android/hardware/usb/gadget/1.0/IUsbGadget.h>
+#include <android/hardware/usb/gadget/1.1/IUsbGadget.h>
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h>
-#include <string>
#include <sys/epoll.h>
#include <sys/eventfd.h>
-#include <thread>
#include <utils/Log.h>
#include <chrono>
#include <condition_variable>
#include <mutex>
+#include <string>
+#include <thread>
namespace android {
namespace hardware {
namespace usb {
namespace gadget {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
using ::android::sp;
@@ -50,6 +49,9 @@ using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec;
using ::android::hardware::Return;
using ::android::hardware::Void;
+using ::android::hardware::usb::gadget::V1_0::GadgetFunction;
+using ::android::hardware::usb::gadget::V1_0::Status;
+using ::android::hardware::usb::gadget::V1_1::IUsbGadget;
using ::std::lock_guard;
using ::std::move;
using ::std::mutex;
@@ -78,24 +80,22 @@ struct UsbGadget : public IUsbGadget {
bool mCurrentUsbFunctionsApplied;
Return<void> setCurrentUsbFunctions(uint64_t functions,
- const sp<IUsbGadgetCallback>& callback,
+ const sp<V1_0::IUsbGadgetCallback> &callback,
uint64_t timeout) override;
- Return<void> getCurrentUsbFunctions(
- const sp<IUsbGadgetCallback>& callback) override;
+ Return<void> getCurrentUsbFunctions(const sp<V1_0::IUsbGadgetCallback> &callback) override;
+
+ Return<Status> reset() override;
- private:
+private:
Status tearDownGadget();
- Status setupFunctions(uint64_t functions,
- const sp<IUsbGadgetCallback>& callback,
+ Status setupFunctions(uint64_t functions, const sp<V1_0::IUsbGadgetCallback> &callback,
uint64_t timeout);
};
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace gadget
} // namespace usb
} // namespace hardware
} // namespace android
-
-#endif // ANDROID_HARDWARE_USB_V1_2_USBGADGET_H
diff --git a/usb/android.hardware.usb.gadget@1.1-service.wahoo.xml b/usb/android.hardware.usb.gadget@1.1-service.wahoo.xml
new file mode 100644
index 00000000..a6f9a1f4
--- /dev/null
+++ b/usb/android.hardware.usb.gadget@1.1-service.wahoo.xml
@@ -0,0 +1,11 @@
+<manifest version="1.0" type="device">
+ <hal format="hidl">
+ <name>android.hardware.usb.gadget</name>
+ <transport>hwbinder</transport>
+ <version>1.1</version>
+ <interface>
+ <name>IUsbGadget</name>
+ <instance>default</instance>
+ </interface>
+ </hal>
+</manifest>
diff --git a/usb/android.hardware.usb@1.1-service.wahoo.xml b/usb/android.hardware.usb@1.1-service.wahoo.xml
new file mode 100644
index 00000000..5ce2ff45
--- /dev/null
+++ b/usb/android.hardware.usb@1.1-service.wahoo.xml
@@ -0,0 +1,12 @@
+<manifest version="1.0" type="device">
+ <hal format="hidl">
+ <name>android.hardware.usb</name>
+ <transport>hwbinder</transport>
+ <version>1.1</version>
+ <interface>
+ <name>IUsb</name>
+ <instance>default</instance>
+ </interface>
+ </hal>
+</manifest>
+
diff --git a/usb/service.cpp b/usb/service.cpp
index e540608b..9162c22d 100644
--- a/usb/service.cpp
+++ b/usb/service.cpp
@@ -27,10 +27,10 @@ using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
// Generated HIDL files
+using android::hardware::usb::gadget::V1_1::IUsbGadget;
+using android::hardware::usb::gadget::V1_1::implementation::UsbGadget;
using android::hardware::usb::V1_1::IUsb;
-using android::hardware::usb::gadget::V1_0::IUsbGadget;
using android::hardware::usb::V1_1::implementation::Usb;
-using android::hardware::usb::gadget::V1_0::implementation::UsbGadget;
using android::OK;
using android::status_t;
diff --git a/vibrator/Android.bp b/vibrator/Android.bp
deleted file mode 100644
index c02ae54e..00000000
--- a/vibrator/Android.bp
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// Copyright (C) 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.
-cc_binary {
- name: "android.hardware.vibrator@1.2-service.wahoo",
- relative_install_path: "hw",
- init_rc: ["android.hardware.vibrator@1.2-service.wahoo.rc"],
- srcs: ["service.cpp", "Vibrator.cpp"],
- cflags: [
- "-Wall",
- "-Werror",
- ],
- shared_libs: [
- "libhidlbase",
- "libcutils",
- "libhidltransport",
- "liblog",
- "libhwbinder",
- "libutils",
- "libhardware",
- "android.hardware.vibrator@1.0",
- "android.hardware.vibrator@1.1",
- "android.hardware.vibrator@1.2",
- ],
- proprietary: true,
-}
diff --git a/vibrator/OWNERS b/vibrator/OWNERS
deleted file mode 100644
index 2c0d70d5..00000000
--- a/vibrator/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-dtwlin@google.com
-michaelwr@google.com
diff --git a/vibrator/Vibrator.cpp b/vibrator/Vibrator.cpp
deleted file mode 100644
index ff66d8e0..00000000
--- a/vibrator/Vibrator.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "VibratorService"
-
-#include <log/log.h>
-
-#include <hardware/hardware.h>
-#include <hardware/vibrator.h>
-#include <cutils/properties.h>
-
-#include "Vibrator.h"
-
-#include <cinttypes>
-#include <cmath>
-#include <iostream>
-#include <fstream>
-
-
-namespace android {
-namespace hardware {
-namespace vibrator {
-namespace V1_2 {
-namespace implementation {
-
-static constexpr int8_t MAX_RTP_INPUT = 127;
-static constexpr int8_t MIN_RTP_INPUT = 0;
-
-static constexpr char RTP_MODE[] = "rtp";
-static constexpr char WAVEFORM_MODE[] = "waveform";
-
-// Use effect #1 in the waveform library for CLICK effect
-static constexpr char WAVEFORM_CLICK_EFFECT_SEQ[] = "1 0";
-static constexpr int32_t WAVEFORM_CLICK_EFFECT_MS = 6;
-
-// Use effect #2 in the waveform library for TICK effect
-static constexpr char WAVEFORM_TICK_EFFECT_SEQ[] = "2 0";
-static constexpr int32_t WAVEFORM_TICK_EFFECT_MS = 2;
-
-// Use effect #3 in the waveform library for DOUBLE_CLICK effect
-static constexpr char WAVEFORM_DOUBLE_CLICK_EFFECT_SEQ[] = "3 0";
-static constexpr uint32_t WAVEFORM_DOUBLE_CLICK_EFFECT_MS = 135;
-
-// Use effect #4 in the waveform library for HEAVY_CLICK effect
-static constexpr char WAVEFORM_HEAVY_CLICK_EFFECT_SEQ[] = "4 0";
-static constexpr uint32_t WAVEFORM_HEAVY_CLICK_EFFECT_MS = 8;
-
-// Timeout threshold for selecting open or closed loop mode
-static constexpr int8_t LOOP_MODE_THRESHOLD_MS = 20;
-
-using Status = ::android::hardware::vibrator::V1_0::Status;
-using EffectStrength = ::android::hardware::vibrator::V1_0::EffectStrength;
-
-Vibrator::Vibrator(std::ofstream&& activate, std::ofstream&& duration,
- std::ofstream&& state, std::ofstream&& rtpinput,
- std::ofstream&& mode, std::ofstream&& sequencer,
- std::ofstream&& scale, std::ofstream&& ctrlloop, std::ofstream&& lptrigger) :
- mActivate(std::move(activate)),
- mDuration(std::move(duration)),
- mState(std::move(state)),
- mRtpInput(std::move(rtpinput)),
- mMode(std::move(mode)),
- mSequencer(std::move(sequencer)),
- mScale(std::move(scale)),
- mCtrlLoop(std::move(ctrlloop)),
- mLpTriggerEffect(std::move(lptrigger)) {
-
- mClickDuration = property_get_int32("ro.vibrator.hal.click.duration", WAVEFORM_CLICK_EFFECT_MS);
- mTickDuration = property_get_int32("ro.vibrator.hal.tick.duration", WAVEFORM_TICK_EFFECT_MS);
- mHeavyClickDuration = property_get_int32(
- "ro.vibrator.hal.heavyclick.duration", WAVEFORM_HEAVY_CLICK_EFFECT_MS);
-
- // This enables effect #1 from the waveform library to be triggered by SLPI
- // while the AP is in suspend mode
- mLpTriggerEffect << 1 << std::endl;
- if (!mLpTriggerEffect) {
- ALOGW("Failed to set LP trigger mode (%d): %s", errno, strerror(errno));
- }
-}
-
-Return<Status> Vibrator::on(uint32_t timeoutMs, bool forceOpenLoop, bool isWaveform) {
- uint32_t loopMode = 1;
-
- // Open-loop mode is used for short click for over-drive
- // Close-loop mode is used for long notification for stability
- if (!forceOpenLoop && timeoutMs > LOOP_MODE_THRESHOLD_MS) {
- loopMode = 0;
- }
-
- mCtrlLoop << loopMode << std::endl;
- mDuration << timeoutMs << std::endl;
- if (!mDuration) {
- ALOGE("Failed to set duration (%d): %s", errno, strerror(errno));
- return Status::UNKNOWN_ERROR;
- }
-
- if (isWaveform) {
- mMode << WAVEFORM_MODE << std::endl;
- } else {
- mMode << RTP_MODE << std::endl;
- }
-
- mActivate << 1 << std::endl;
- if (!mActivate) {
- ALOGE("Failed to activate (%d): %s", errno, strerror(errno));
- return Status::UNKNOWN_ERROR;
- }
-
- return Status::OK;
-}
-
-// Methods from ::android::hardware::vibrator::V1_2::IVibrator follow.
-Return<Status> Vibrator::on(uint32_t timeoutMs) {
- return on(timeoutMs, false /* forceOpenLoop */, false /* isWaveform */);
-}
-
-Return<Status> Vibrator::off() {
- mActivate << 0 << std::endl;
- if (!mActivate) {
- ALOGE("Failed to turn vibrator off (%d): %s", errno, strerror(errno));
- return Status::UNKNOWN_ERROR;
- }
- return Status::OK;
-}
-
-Return<bool> Vibrator::supportsAmplitudeControl() {
- return (mRtpInput ? true : false);
-}
-
-Return<Status> Vibrator::setAmplitude(uint8_t amplitude) {
-
- if (amplitude == 0) {
- return Status::BAD_VALUE;
- }
-
- int32_t rtp_input =
- std::round((amplitude - 1) / 254.0 * (MAX_RTP_INPUT - MIN_RTP_INPUT) +
- MIN_RTP_INPUT);
-
- mRtpInput << rtp_input << std::endl;
- if (!mRtpInput) {
- ALOGE("Failed to set amplitude (%d): %s", errno, strerror(errno));
- return Status::UNKNOWN_ERROR;
- }
-
- return Status::OK;
-}
-
-static uint8_t convertEffectStrength(EffectStrength strength) {
- uint8_t scale;
-
- switch (strength) {
- case EffectStrength::LIGHT:
- scale = 2; // 50%
- break;
- case EffectStrength::MEDIUM:
- case EffectStrength::STRONG:
- scale = 0; // 100%
- break;
- }
-
- return scale;
-}
-
-Return<void> Vibrator::perform(V1_0::Effect effect, EffectStrength strength, perform_cb _hidl_cb) {
- return performWrapper(effect, strength, _hidl_cb);
-}
-
-Return<void> Vibrator::perform_1_1(V1_1::Effect_1_1 effect, EffectStrength strength,
- perform_cb _hidl_cb) {
- return performWrapper(effect, strength, _hidl_cb);
-}
-
-Return<void> Vibrator::perform_1_2(Effect effect, EffectStrength strength, perform_cb _hidl_cb) {
- return performWrapper(effect, strength, _hidl_cb);
-}
-
-template <typename T>
-Return<void> Vibrator::performWrapper(T effect, EffectStrength strength, perform_cb _hidl_cb) {
- auto validEffectRange = hidl_enum_range<T>();
- if (effect < *validEffectRange.begin() || effect > *std::prev(validEffectRange.end())) {
- _hidl_cb(Status::UNSUPPORTED_OPERATION, 0);
- return Void();
- }
- auto validStrengthRange = hidl_enum_range<EffectStrength>();
- if (strength < *validStrengthRange.begin() || strength > *std::prev(validStrengthRange.end())) {
- _hidl_cb(Status::UNSUPPORTED_OPERATION, 0);
- return Void();
- }
- return performEffect(static_cast<Effect>(effect), strength, _hidl_cb);
-}
-
-Return<void> Vibrator::performEffect(Effect effect, EffectStrength strength, perform_cb _hidl_cb) {
- Status status = Status::OK;
- uint32_t timeMS;
-
- switch (effect) {
- case Effect::CLICK:
- mSequencer << WAVEFORM_CLICK_EFFECT_SEQ << std::endl;
- timeMS = mClickDuration;
- break;
- case Effect::DOUBLE_CLICK:
- mSequencer << WAVEFORM_DOUBLE_CLICK_EFFECT_SEQ << std::endl;
- timeMS = WAVEFORM_DOUBLE_CLICK_EFFECT_MS;
- break;
- case Effect::TICK:
- mSequencer << WAVEFORM_TICK_EFFECT_SEQ << std::endl;
- timeMS = mTickDuration;
- break;
- case Effect::HEAVY_CLICK:
- mSequencer << WAVEFORM_HEAVY_CLICK_EFFECT_SEQ << std::endl;
- timeMS = mHeavyClickDuration;
- break;
- default:
- _hidl_cb(Status::UNSUPPORTED_OPERATION, 0);
- return Void();
- }
- mScale << convertEffectStrength(strength) << std::endl;
- on(timeMS, true /* forceOpenLoop */, true /* isWaveform */);
- _hidl_cb(status, timeMS);
- return Void();
-}
-
-
-} // namespace implementation
-} // namespace V1_2
-} // namespace vibrator
-} // namespace hardware
-} // namespace android
diff --git a/vibrator/Vibrator.h b/vibrator/Vibrator.h
deleted file mode 100644
index 24510d76..00000000
--- a/vibrator/Vibrator.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-#ifndef ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H
-#define ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H
-
-#include <android/hardware/vibrator/1.2/IVibrator.h>
-#include <hidl/Status.h>
-
-#include <fstream>
-
-namespace android {
-namespace hardware {
-namespace vibrator {
-namespace V1_2 {
-namespace implementation {
-
-class Vibrator : public IVibrator {
-public:
- Vibrator(std::ofstream&& activate, std::ofstream&& duration,
- std::ofstream&& state, std::ofstream&& rtpinput,
- std::ofstream&& mode, std::ofstream&& sequencer,
- std::ofstream&& scale, std::ofstream&& ctrlloop, std::ofstream&& lptrigger);
-
- // Methods from ::android::hardware::vibrator::V1_0::IVibrator follow.
- using Status = ::android::hardware::vibrator::V1_0::Status;
- Return<Status> on(uint32_t timeoutMs) override;
- Return<Status> off() override;
- Return<bool> supportsAmplitudeControl() override;
- Return<Status> setAmplitude(uint8_t amplitude) override;
-
- using EffectStrength = ::android::hardware::vibrator::V1_0::EffectStrength;
- Return<void> perform(V1_0::Effect effect, EffectStrength strength, perform_cb _hidl_cb)
- override;
- Return<void> perform_1_1(V1_1::Effect_1_1 effect, EffectStrength strength, perform_cb _hidl_cb)
- override;
- Return<void> perform_1_2(Effect effect, EffectStrength strength, perform_cb _hidl_cb) override;
-
-private:
- Return<Status> on(uint32_t timeoutMs, bool forceOpenLoop, bool isWaveform);
- template <typename T>
- Return<void> performWrapper(T effect, EffectStrength strength, perform_cb _hidl_cb);
- Return<void> performEffect(Effect effect, EffectStrength strength, perform_cb _hidl_cb);
- std::ofstream mActivate;
- std::ofstream mDuration;
- std::ofstream mState;
- std::ofstream mRtpInput;
- std::ofstream mMode;
- std::ofstream mSequencer;
- std::ofstream mScale;
- std::ofstream mCtrlLoop;
- std::ofstream mLpTriggerEffect;
- int32_t mClickDuration;
- int32_t mTickDuration;
- int32_t mHeavyClickDuration;
-};
-} // namespace implementation
-} // namespace V1_2
-} // namespace vibrator
-} // namespace hardware
-} // namespace android
-
-#endif // ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H
diff --git a/vibrator/android.hardware.vibrator@1.2-service.wahoo.rc b/vibrator/android.hardware.vibrator@1.2-service.wahoo.rc
deleted file mode 100644
index b5397861..00000000
--- a/vibrator/android.hardware.vibrator@1.2-service.wahoo.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-service vendor.vibrator-1-2 /vendor/bin/hw/android.hardware.vibrator@1.2-service.wahoo
- class hal
- user system
- group system
diff --git a/vibrator/service.cpp b/vibrator/service.cpp
deleted file mode 100644
index ea05151d..00000000
--- a/vibrator/service.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-#define LOG_TAG "android.hardware.vibrator@1.2-service.wahoo"
-
-#include <android/hardware/vibrator/1.2/IVibrator.h>
-#include <hidl/HidlSupport.h>
-#include <hidl/HidlTransportSupport.h>
-#include <utils/Errors.h>
-#include <utils/StrongPointer.h>
-
-#include "Vibrator.h"
-
-using android::hardware::configureRpcThreadpool;
-using android::hardware::joinRpcThreadpool;
-using android::hardware::vibrator::V1_2::IVibrator;
-using android::hardware::vibrator::V1_2::implementation::Vibrator;
-using namespace android;
-
-// Refer to Documentation/ABI/testing/sysfs-class-led-driver-drv2624
-// kernel documentation on the detail usages for ABIs below
-static constexpr char ACTIVATE_PATH[] = "/sys/class/leds/vibrator/activate";
-static constexpr char DURATION_PATH[] = "/sys/class/leds/vibrator/duration";
-static constexpr char STATE_PATH[] = "/sys/class/leds/vibrator/state";
-static constexpr char RTP_INPUT_PATH[] = "/sys/class/leds/vibrator/device/rtp_input";
-static constexpr char MODE_PATH[] = "/sys/class/leds/vibrator/device/mode";
-static constexpr char SEQUENCER_PATH[] = "/sys/class/leds/vibrator/device/set_sequencer";
-static constexpr char SCALE_PATH[] = "/sys/class/leds/vibrator/device/scale";
-static constexpr char CTRL_LOOP_PATH[] = "/sys/class/leds/vibrator/device/ctrl_loop";
-static constexpr char LP_TRIGGER_PATH[] = "/sys/class/leds/vibrator/device/lp_trigger_effect";
-
-// File path to the calibration file
-static constexpr char CALIBRATION_FILEPATH[] = "/persist/haptics/drv2624.cal";
-
-// Kernel ABIs for updating the calibration data
-static constexpr char AUTOCAL_CONFIG[] = "autocal";
-static constexpr char LRA_PERIOD_CONFIG[] = "lra_period";
-static constexpr char AUTOCAL_FILEPATH[] = "/sys/class/leds/vibrator/device/autocal";
-static constexpr char OL_LRA_PERIOD_FILEPATH[] = "/sys/class/leds/vibrator/device/ol_lra_period";
-
-static std::string trim(const std::string& str,
- const std::string& whitespace = " \t") {
- const auto str_begin = str.find_first_not_of(whitespace);
- if (str_begin == std::string::npos) {
- return "";
- }
-
- const auto str_end = str.find_last_not_of(whitespace);
- const auto str_range = str_end - str_begin + 1;
-
- return str.substr(str_begin, str_range);
-}
-
-static bool loadCalibrationData() {
- std::map<std::string, std::string> config_data;
-
- std::ofstream autocal{AUTOCAL_FILEPATH};
- if (!autocal) {
- int error = errno;
- ALOGE("Failed to open %s (%d): %s", AUTOCAL_FILEPATH, error,
- strerror(error));
- return false;
- }
-
- std::ofstream ol_lra_period{OL_LRA_PERIOD_FILEPATH};
- if (!ol_lra_period) {
- int error = errno;
- ALOGE("Failed to open %s (%d): %s", OL_LRA_PERIOD_FILEPATH, error,
- strerror(error));
- return false;
- }
-
- std::ifstream cal_data{CALIBRATION_FILEPATH};
- if (!cal_data) {
- int error = errno;
- ALOGE("Failed to open %s (%d): %s", CALIBRATION_FILEPATH, error,
- strerror(error));
- return false;
- }
-
- std::string line;
-
- while (std::getline(cal_data, line)) {
- if (line.empty() || line[0] == '#') {
- continue;
- }
- std::istringstream is_line(line);
- std::string key;
- if (std::getline(is_line, key, ':')) {
- std::string value;
-
- if (std::getline(is_line, value)) {
- config_data[trim(key)] = trim(value);
- }
- }
- }
-
- if(config_data.find(AUTOCAL_CONFIG) != config_data.end()) {
- autocal << config_data[AUTOCAL_CONFIG] << std::endl;
- }
-
- if(config_data.find(LRA_PERIOD_CONFIG) != config_data.end()) {
- ol_lra_period << config_data[LRA_PERIOD_CONFIG] << std::endl;
- }
-
- return true;
-}
-
-status_t registerVibratorService() {
- // ostreams below are required
- std::ofstream activate{ACTIVATE_PATH};
- if (!activate) {
- int error = errno;
- ALOGE("Failed to open %s (%d): %s", ACTIVATE_PATH, error, strerror(error));
- return -error;
- }
-
- std::ofstream duration{DURATION_PATH};
- if (!duration) {
- int error = errno;
- ALOGE("Failed to open %s (%d): %s", DURATION_PATH, error, strerror(error));
- return -error;
- }
-
- std::ofstream state{STATE_PATH};
- if (!state) {
- int error = errno;
- ALOGE("Failed to open %s (%d): %s", STATE_PATH, error, strerror(error));
- return -error;
- }
-
- state << 1 << std::endl;
- if (!state) {
- int error = errno;
- ALOGE("Failed to set state (%d): %s", errno, strerror(errno));
- return -error;
- }
-
- // ostreams below are optional
- std::ofstream rtpinput{RTP_INPUT_PATH};
- if (!rtpinput) {
- int error = errno;
- ALOGW("Failed to open %s (%d): %s", RTP_INPUT_PATH, error, strerror(error));
- }
-
- std::ofstream mode{MODE_PATH};
- if (!mode) {
- int error = errno;
- ALOGW("Failed to open %s (%d): %s", MODE_PATH, error, strerror(error));
- }
-
- std::ofstream sequencer{SEQUENCER_PATH};
- if (!sequencer) {
- int error = errno;
- ALOGW("Failed to open %s (%d): %s", SEQUENCER_PATH, error, strerror(error));
- }
-
- std::ofstream scale{SCALE_PATH};
- if (!scale) {
- int error = errno;
- ALOGW("Failed to open %s (%d): %s", SCALE_PATH, error, strerror(error));
- }
-
- std::ofstream ctrlloop{CTRL_LOOP_PATH};
- if (!ctrlloop) {
- int error = errno;
- ALOGW("Failed to open %s (%d): %s", CTRL_LOOP_PATH, error, strerror(error));
- }
-
- std::ofstream lptrigger{LP_TRIGGER_PATH};
- if (!lptrigger) {
- int error = errno;
- ALOGW("Failed to open %s (%d): %s", LP_TRIGGER_PATH, error, strerror(error));
- }
-
- if (!loadCalibrationData()) {
- ALOGW("Failed load calibration data");
- }
-
- sp<IVibrator> vibrator = new Vibrator(std::move(activate), std::move(duration),
- std::move(state), std::move(rtpinput), std::move(mode),
- std::move(sequencer), std::move(scale), std::move(ctrlloop), std::move(lptrigger));
-
- return vibrator->registerAsService();
-}
-
-int main() {
- configureRpcThreadpool(1, true);
- status_t status = registerVibratorService();
-
- if (status != OK) {
- return status;
- }
-
- joinRpcThreadpool();
-}
diff --git a/wpa_supplicant_overlay.conf b/wpa_supplicant_overlay.conf
index 16c28040..5c99eeea 100644
--- a/wpa_supplicant_overlay.conf
+++ b/wpa_supplicant_overlay.conf
@@ -6,3 +6,4 @@ interworking=1
hs20=1
auto_interworking=0
bss_no_flush_when_down=1
+driver_param=use_p2p_group_interface=1