47 Commits
udc ... vic

Author SHA1 Message Date
Bruno Martins
0272482e66 venus: Switch to PowerShare AIDL
Change-Id: I97400638493a3b9d5a3b87fa6831c9affc7c3def
2025-05-18 03:08:44 +09:00
Bruno Martins
68d7a4edd0 venus: Set camera override format from reserved via soong config
Change-Id: I6a089e783f26c4515940d74f8e912dffa2789550
Signed-off-by: Fiqri Ardyansyah <fiqri191002@gmail.com>
2025-05-18 02:51:16 +09:00
Joey Huab
6dfee072eb venus: Move camera package name flag to select() 2025-04-30 17:30:43 +09:00
Rohit Sekhar
5639d22095 venus: set TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED 2025-04-26 18:35:13 +09:00
kamikaonashi
c59e41dd6a venus: remove duplicates from proprietary-files 2025-04-26 18:35:13 +09:00
ralph950412
87b7b9e73f fixup! venus: Patch xiaomi camera libraries
Change-Id: I9b1082497ed97cd6e56af30b9a89144471f7dc78
2025-04-26 18:35:13 +09:00
LuK1337
335cc8d5ba venus: Fix elfchecks for camera libs
Reference: I23190f0b83c9e28aa2624a7575544b0eaf5c83c8
Change-Id: I18b0b07bf3a435dd449106653e3ca458b4f07b69
Signed-off-by: ralph950412 <ralph950412@gmail.com>
2025-04-26 18:35:13 +09:00
pix106
d765ecbcae venus: Migrate to py extract utils 2025-04-26 18:35:13 +09:00
42c04fe499 venus: Initialize for Evolution X 10.x 2025-04-26 18:35:13 +09:00
kamikaonashi
7db68a9bb9 venus: overlay: drop smooth display
we use min/peak refresh rate controls
smooth display has some issues
2025-04-26 18:35:13 +09:00
LuK1337
f6de7de72b venus: Disable T4T_NFCEE
Fixes NFC on 15 QPR2.

Change-Id: Ib3091187c2f291562f16fcbc05cfa8823b78fe11
2025-04-26 18:35:13 +09:00
Fiqri Ardyansyah
0e7e83954f venus: Address missing SetTaskProfiles symbol in camera libs
~/proprietary_vendor_xiaomi_venus$ grep -i -r SetTaskProfiles
grep: proprietary/vendor/lib64/hw/com.qti.chi.override.so: binary file matches
grep: proprietary/vendor/lib64/hw/camera.qcom.so: binary file matches

This is because DECLS was removed in [1] on Android 15 QPR2, and
caused SetTaskProfiles() to be hidden, so shim SetTaskProfiles
with libprocessgroup_shim.

[1]: 3e7c17a8e7
2025-04-26 18:35:13 +09:00
pix106
79ac6e427a venus: build libprocessgroup_shim 2025-04-26 18:35:13 +09:00
kamikaonashi
7852669e18 venus: update to OS2.0.1.0.UKBEUXM 2025-04-26 18:35:13 +09:00
Bin
73e0e79193 venus: Remove duplicate proprietary libs
error: vendor/xiaomi/elish/Android.bp:2637:1: module "libcapiv2svarnn" variant "android_vendor_arm64_armv8-a_static": found in multiple namespaces(vendor/xiaomi/sm8250-common and vendor/xiaomi/elish) when including in vendor partition
error: vendor/xiaomi/elish/Android.bp:2620:1: module "libcapiv2svacnn" variant "android_vendor_arm64_armv8-a_static": found in multiple namespaces(vendor/xiaomi/sm8250-common and vendor/xiaomi/elish) when including in vendor partition
error: vendor/xiaomi/elish/Android.bp:2654:1: module "libcapiv2vop" variant "android_vendor_arm64_armv8-a_static": found in multiple namespaces(vendor/xiaomi/sm8250-common and vendor/xiaomi/elish) when including in vendor partition
2025-04-26 18:35:13 +09:00
Arian
b72b84e0cb venus: Enable udfps sensor
Change-Id: If133c8ec034c7e419a76d348dd3179edbe801946
2025-04-26 18:35:13 +09:00
ralph950412
2b64af7de7 venus: overlay: Thicken the status bar
Change-Id: Icdb357c6b5b6f46941cc1f7c48fa068f12d5b4ed
2025-04-26 18:35:13 +09:00
Arian
72bcd50a73 venus: sensors: Add v2 suffix to sensors.xiaomi
Change-Id: Ie6ef0e5fd4653eae298a3455edf14e05508e1cfd
2025-04-26 18:35:13 +09:00
Alexander Koskovich
d72ca8d2f9 venus: Set USB product string to 'Mi 11'
Change-Id: Idda062aaa38e16d7ba65356dbca8b467fbff14c1
2025-04-26 18:35:13 +09:00
Chenyang Zhong
f1c1b5044a venus: configs: ship displayconfig for brightness ramp rate
Android 12 allows the brightness ramp rate to be changed separately
for fast/slow and increase/decrease in float. Once loaded,
DisplayDeviceConfig has higher priority than the integer config
values in frameworks. The format definition is in [1].

There are 3 variants for the filename:

* display_id_46xxxxx.xml
* display_19xxxxx.xml
* display_port_xxx.xml

The value can be found in boot logs by grepping DisplayDeviceInfo.
On android 12, boot log reports the 46xxxxx value of the first
variant.

The xml file can be put in either product or vendor.

[1] frameworks/base/services/core/xsd/display-device-config/display-device-config.xsd

Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2025-04-26 18:35:13 +09:00
FlowerSea0208
90e13d689c venus: Add missing libbitmlenginev2.so
Change-Id: I245b483c0e4406eda6271f7e467662b3a36e3214
2025-01-26 04:24:19 +09:00
ralph950412
8b0c8ae2e1 venus: Add libmialgo_basic
Change-Id: Ibc30774aee0ba19138b3dd3cc06092892c1d7b90
2025-01-26 04:24:19 +09:00
ralph950412
380d82f4bb venus: Inherit miuicamera if it exists
Change-Id: I2eeb1a4979fa97faab7dd09ef80f1b91646e2cff
2025-01-26 04:24:19 +09:00
kamikaonashi
a6203d0b4b venus: update blob list to OS1.0.10.0 2025-01-26 04:24:19 +09:00
kamikaonashi
abd5cba1f8 venus: remove proprietary-firmware.txt
I dont like shipping included firmware

* can brick device (looking at poco)
* git lfs acting up, lol
* increases size of rom.zip
* users can just flash firmware zip before or after rom flash, if they are on older firmware
2025-01-26 04:24:19 +09:00
Bruno Martins
84d45dc114 venus: Set udfps props via sysprops
Change-Id: Ie06fb93892a2ba8bd8806d7d376fd6c77cda64a4
Signed-off-by: ralph950412 <ralph950412@gmail.com>
2025-01-26 04:24:19 +09:00
Beverly
3805cfed05 venus: Update pixel pitch
Bug: 319894241
Flag: ACONFIG com.android.systemui.device_entry_udfps_refactor DEVELOPMENT
Test: manual

[ralph950412: Adapt for venus.]
6.81" = 172.974 mm
sqrt(1440^2 + 3200^2) ≈ 3509.074 (px)
172.974 / 3509.074 ≈ 0.04929 (mm/px) = 49.29 (um/px)

Co-authored-by: ralph950412 <ralph950412@gmail.com>
Change-Id: Iaa9576cb95ebe73043b7030b2b176f67bc90e3a1
Signed-off-by: ralph950412 <ralph950412@gmail.com>
2025-01-26 04:24:05 +09:00
FlowerSea0208
d0f97a6e69 venus: Use soong_config_set to set Xiaomi Biometric parameters
Change-Id: I2bb7f39c7de0374f160edd92145cdfa670fb3fde
2025-01-26 04:24:05 +09:00
ralph950412
f1d526418c venus: Switch to AIDL fingerprint HAL
Change-Id: I910f1c17ce44949d85d1653e04fb8e3ea263ab48
2025-01-26 04:24:05 +09:00
LuK1337
6beedf4ad7 venus: Adjust override prop key names
Change-Id: I436bbf425023dbe54cf3e2c35f50a5575511bc38
Signed-off-by: RobertGarciaa <chae0218@naver.com>
2025-01-26 04:24:05 +09:00
Sal Savage
8cb6fad129 venus: Replace BTM_DEF_LOCAL_NAME with a sysprop
Change-Id: I2c90efac01e61500eb1be23bb0ae6f96c2acdc53
2025-01-26 04:24:04 +09:00
FlowerSea0208
0915904869 Revert "venus: Import udfps long press sensor"
This reverts commit bf08d53168.
2024-10-20 16:08:32 +08:00
FlowerSea0208
601cd21808 venus: Fix soname of fingerprint.goodix_fod.lahaina
Change-Id: I3d740998e48b483cd455d1d60d75a31962367355
2024-10-20 16:08:32 +08:00
FlowerSea0208
d8d8e46acc venus: Unpin fingerprint blobs
Change-Id: I73d27a13b8c3a7f56a61397e4dd452b621c38d6c
2024-10-20 16:08:32 +08:00
Michael Bestas
72fea9a7c2 venus: Disable ELF checks for certain libraries
Change-Id: I61dbc3559b43becc22f69ae2c1c3e8edf95e2483
2024-10-20 16:08:28 +08:00
FlowerSea0208
97caaaceaf venus: Drop unnecessary fingerprint HAL dependency
Change-Id: If47c012af4e1fed6bc6a9c956c40e1f820694179
2024-10-16 11:51:12 +08:00
FlowerSea0208
76af3271d9 venus: Switch to source-built fx.tunnel interface
Change-Id: I1b96a1df3758106b7516ee7b9ac90bd9374f6d1c
2024-10-16 11:50:38 +08:00
FlowerSea0208
8c0fa265db venus: Decommonize citsensorservice
Change-Id: If086a47845ebc06f81576aed81dad2c0d842a4d5
2024-10-16 11:47:48 +08:00
FlowerSea0208
d1f1711156 venus: Fix soname
Change-Id: Ieaa6d07a5c7a45dbf804587bfce68fef4fa4fc34
2024-10-15 04:55:53 +08:00
FlowerSea0208
7db86f079f venus: Updated from venus OS1.0.6.0.UKBMIXM
Change-Id: Iad22455244f7d11305e9cbe96cb85d8ebdb448b8
2024-10-15 00:07:27 +08:00
Michael Bestas
033248f796 venus: Sync extract scripts with templates
Change-Id: I98a36854c5a0c0390592911bb2558b34eff77efc
2024-09-02 04:25:20 +08:00
FlowerSea0208
1e94ef4e12 venus: Switch to common lineage Powershare hal
Change-Id: Ie5ed9e80b370717d2700eb7d86221d856d435b29
2024-09-02 04:20:08 +08:00
FlowerSea0208
2900d92523 venus: Updated from venus OS1.0.5.0.UKBMIXM 2024-09-02 04:20:00 +08:00
SGCMarkus
7a428edff7 venus: unset BOARD_USERDATAIMAGE_PARTITION_SIZE
This not only saves a lot of build time when building with
TARGET_USERIMAGES_SPARSE_EXT_DISABLED and/or
TARGET_USERIMAGES_SPARSE_F2FS_DISABLED which is required
on A14, but also removes the need for the build system to
temporarily create a 40+GB userdata image.
Which means that less free space is required to start the
build.

Change-Id: Ibf48e7cdf566a4653e85352a79170b354d917234
2024-06-24 21:38:44 +08:00
Michael Bestas
8815aef4f0 venus: Drop COMMON_LUNCH_CHOICES
As of 14 QPR2 this is broken, let's remove it instead of updating it
every 3 months. breakfast is the way to go.

Change-Id: I097bd54b894d9a49c7ce8b1ab6f343349e268fd8
2024-06-24 21:37:23 +08:00
Flower sea
439c093279 fixup! venus: Set stock TARGET_DEVICE and TARGET_PRODUCT 2024-05-25 02:00:02 +08:00
FlowerSea0208
093db820e9 venus: Add crdroid.dependencies 2024-05-23 02:18:43 +08:00
26 changed files with 297 additions and 958 deletions

View File

@@ -6,8 +6,3 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_venus.mk
COMMON_LUNCH_CHOICES := \
lineage_venus-user \
lineage_venus-userdebug \
lineage_venus-eng

View File

@@ -9,6 +9,9 @@ DEVICE_PATH := device/xiaomi/venus
# Inherit from sm8350-common
include device/xiaomi/sm8350-common/BoardConfigCommon.mk
# Inherit from miuicamera-venus
-include device/xiaomi/miuicamera-venus/BoardConfig.mk
# Board
TARGET_BOOTLOADER_BOARD_NAME := venus
@@ -31,7 +34,9 @@ BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(BOOT_KERNEL_MODULES)
# Partitions
BOARD_DTBOIMG_PARTITION_SIZE := 25165824
BOARD_USERDATAIMAGE_PARTITION_SIZE := 113254576128
# Properties
TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
# Recovery
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165

View File

@@ -0,0 +1,29 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<!-- Copyright (C) 2020 Google Inc.
Copyright (C) 2022 The Pixel Experience 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.
-->
<displayConfiguration>
<screenBrightnessRampFastDecrease>0.5</screenBrightnessRampFastDecrease>
<screenBrightnessRampFastIncrease>0.5</screenBrightnessRampFastIncrease>
<screenBrightnessRampSlowDecrease>0.04</screenBrightnessRampSlowDecrease>
<screenBrightnessRampSlowIncrease>0.05</screenBrightnessRampSlowIncrease>
<screenBrightnessMap>
<point>
<value>0.0</value>
<nits>2</nits>
</point>
<point>
<value>1.0</value>
<nits>1000.0</nits>
</point>
</screenBrightnessMap>
</displayConfiguration>

View File

@@ -7,10 +7,18 @@
# Inherit from sm8350-common
$(call inherit-product, device/xiaomi/sm8350-common/common.mk)
# Inherit from miuicamera-venus
$(call inherit-product-if-exists, device/xiaomi/miuicamera-venus/device.mk)
$(call soong_config_set,camera,override_format_from_reserved,true)
$(call soong_config_set,camera,package_name,com.android.camera)
# Display Device Config
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/display_id_4630946736638489730.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/displayconfig/display_id_4630946736638489730.xml
# Fingerprint
PRODUCT_PACKAGES += \
libudfpshandler \
vendor.goodix.hardware.biometrics.fingerprint@2.1.vendor
libudfpshandler
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
@@ -19,11 +27,11 @@ DEVICE_PACKAGE_OVERLAYS += \
# PowerShare
PRODUCT_PACKAGES += \
vendor.lineage.powershare@1.0-service.xiaomi
vendor.lineage.powershare-service.default
# Sensors
PRODUCT_PACKAGES += \
sensors.xiaomi.venus
sensors.xiaomi.v2
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
@@ -32,6 +40,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH)
# Shim
PRODUCT_PACKAGES += \
libprocessgroup_shim
# Rootdir
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/etc/init.venus.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.venus.rc

34
evolution.dependencies Normal file
View File

@@ -0,0 +1,34 @@
[
{
"repository": "device_xiaomi_sm8350-common",
"target_path": "device/xiaomi/sm8350-common"
},
{
"repository": "vendor_xiaomi_sm8350-common",
"target_path": "vendor/xiaomi/sm8350-common"
},
{
"repository": "vendor_xiaomi_venus",
"target_path": "vendor/xiaomi/venus"
},
{
"repository": "hardware_xiaomi",
"target_path": "hardware/xiaomi"
},
{
"repository": "device_xiaomi_miuicamera-venus",
"target_path": "device/xiaomi/miuicamera-venus"
},
{
"repository": "vendor_xiaomi_miuicamera-venus",
"target_path": "vendor/xiaomi/miuicamera-venus"
},
{
"repository": "packages_apps_ViPER4AndroidFX",
"target_path": "packages/apps/ViPER4AndroidFX"
},
{
"repository": "kernel_xiaomi_venus",
"target_path": "kernel/xiaomi/sm8350"
}
]

81
extract-files.py Executable file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
#
# SPDX-FileCopyrightText: 2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
from extract_utils.fixups_blob import (
blob_fixup,
blob_fixups_user_type,
)
from extract_utils.fixups_lib import (
lib_fixups,
lib_fixups_user_type,
)
from extract_utils.main import (
ExtractUtils,
ExtractUtilsModule,
)
namespace_imports = [
'hardware/qcom-caf/sm8350',
'hardware/xiaomi',
'vendor/qcom/opensource/display',
'vendor/xiaomi/sm8350-common',
'vendor/xiaomi/venus',
]
def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
return f'{lib}_{partition}' if partition == 'vendor' else None
lib_fixups: lib_fixups_user_type = {
**lib_fixups,
(
): lib_fixup_vendor_suffix,
}
blob_fixups: blob_fixups_user_type = {
'vendor/etc/camera/pureShot_parameter.xml': blob_fixup()
.regex_replace(r'=(\d+)>', r'="\1">'),
'vendor/etc/libnfc-nxp.conf': blob_fixup()
.regex_replace(r'NXP_T4T_NFCEE_ENABLE=0x01', r'NXP_T4T_NFCEE_ENABLE=0x00'),
'vendor/lib64/hw/camera.qcom.so': blob_fixup()
.binary_regex_replace(b'\x73\x74\x5F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x6C\x69\x63', b'\x63\x61\x6D\x65\x72\x61\x5F\x63\x6E\x66\x2E\x74\x78\x74')
.add_needed('libprocessgroup_shim.so'),
'vendor/lib64/hw/camera.xiaomi.so': blob_fixup()
.sig_replace('AA 06 00 94', '1F 20 03 D5'),
'vendor/lib64/hw/com.qti.chi.override.so': blob_fixup()
.add_needed('libprocessgroup_shim.so'),
('vendor/lib64/libalLDC.so', 'vendor/lib64/libalhLDC.so'): blob_fixup()
.clear_symbol_version('AHardwareBuffer_allocate')
.clear_symbol_version('AHardwareBuffer_describe')
.clear_symbol_version('AHardwareBuffer_lock')
.clear_symbol_version('AHardwareBuffer_release')
.clear_symbol_version('AHardwareBuffer_unlock'),
('vendor/lib64/libarcsoft_hdrplus_hvx_stub.so', 'vendor/lib64/libarcsoft_super_night_raw.so', 'vendor/lib64/libmialgo_rfs.so', 'vendor/lib64/libmiphone_preview_bokeh.so'): blob_fixup()
.clear_symbol_version('remote_handle_close')
.clear_symbol_version('remote_handle_invoke')
.clear_symbol_version('remote_handle_open')
.clear_symbol_version('remote_handle64_close')
.clear_symbol_version('remote_handle64_invoke')
.clear_symbol_version('remote_handle64_open')
.clear_symbol_version('remote_register_buf_attr')
.clear_symbol_version('remote_session_control'),
'vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so': blob_fixup()
.sig_replace('8D 0A 00 94', '1F 20 03 D5'),
'vendor/lib64/vendor.xiaomi.hardware.cameraperf@1.0-impl.so': blob_fixup()
.sig_replace('21 00 80 52 7C 00 00 94', '21 00 80 52 1F 20 03 D5'),
} # fmt: skip
module = ExtractUtilsModule(
'venus',
'xiaomi',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
)
if __name__ == '__main__':
utils = ExtractUtils.device(module)
utils.run()

View File

@@ -1,41 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
function blob_fixup() {
case "${1}" in
vendor/etc/camera/pureShot_parameter.xml)
sed -i 's/=\([0-9]\+\)>/="\1">/g' "${2}"
;;
vendor/lib64/hw/camera.qcom.so)
sed -i "s/\x73\x74\x5F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x6C\x69\x63/\x63\x61\x6D\x65\x72\x61\x5F\x63\x6E\x66\x2E\x74\x78\x74/g" "${2}"
;;
vendor/lib64/hw/camera.xiaomi.so)
"${SIGSCAN}" -p "AA 06 00 94" -P "1F 20 03 D5" -f "${2}"
;;
vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so)
"${SIGSCAN}" -p "8D 0A 00 94" -P "1F 20 03 D5" -f "${2}"
;;
vendor/lib64/vendor.xiaomi.hardware.cameraperf@1.0-impl.so)
"${SIGSCAN}" -p "7C 00 00 94" -P "1F 20 03 D5" -f "${2}"
;;
esac
}
# If we're being sourced by the common script that we called,
# stop right here. No need to go down the rabbit hole.
if [ "${BASH_SOURCE[0]}" != "${0}" ]; then
return
fi
set -e
# Required!
export DEVICE=venus
export DEVICE_COMMON=sm8350-common
export VENDOR=xiaomi
"./../../${VENDOR}/${DEVICE_COMMON}/extract-files.sh" "$@"

View File

@@ -1,6 +0,0 @@
[
{
"repository": "android_device_xiaomi_sm8350-common",
"target_path": "device/xiaomi/sm8350-common"
}
]

View File

@@ -14,6 +14,10 @@ $(call inherit-product, device/xiaomi/venus/device.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
EVO_BUILD_TYPE := Official
TARGET_HAS_UDFPS := true
# Device identifier. This must come after all inclusions.
PRODUCT_BRAND := Xiaomi
PRODUCT_DEVICE := venus
PRODUCT_MANUFACTURER := Xiaomi
@@ -22,13 +26,13 @@ PRODUCT_NAME := lineage_venus
PRODUCT_GMS_CLIENTID_BASE := android-xiaomi
PRODUCT_SYSTEM_NAME := venus_global
PRODUCT_SYSTEM_DEVICE := venus
SystemName := venus_global
SystemDevice := venus
PRODUCT_BUILD_PROP_OVERRIDES += \
PRIVATE_BUILD_DESC="venus_global-user 13 RKQ1.211001.001 V816.0.2.0.UKBMIXM release-keys"
TARGET_DEVICE=$(PRODUCT_SYSTEM_DEVICE) \
TARGET_PRODUCT=$(PRODUCT_SYSTEM_NAME)
BuildDesc="venus_global-user 14 UKQ1.231207.002 V816.0.10.0.UKBMIXM release-keys" \
DeviceName=$(SystemDevice) \
DeviceProduct=$(SystemName)
# Set BUILD_FINGERPRINT variable to be picked up by both system and vendor build.prop
BUILD_FINGERPRINT := Xiaomi/venus_global/venus:13/RKQ1.211001.001/V816.0.2.0.UKBMIXM:user/release-keys
BUILD_FINGERPRINT := Xiaomi/venus_global/venus:14/UKQ1.231207.002/V816.0.10.0.UKBMIXM:user/release-keys

View File

@@ -425,12 +425,17 @@
<string ...>M -5,0 L -5,10 L 5,10 L 5,0 Z @dp</string>
@see https://www.w3.org/TR/SVG/paths.html#PathData
-->
<string name="config_mainBuiltInDisplayCutout">
M 127,98
a 38,38 0 1 0 77,0
a 38,38 0 1 0 -77,0
Z
@left
<string translatable="false" name="config_mainBuiltInDisplayCutout">
M 127, 98
a 38, 38 0 1, 0 77,0
a 38, 38 0 1, 0 -77,0
Z
M 0, 0
L 204, 0
Z
M 0, 0
L 0, 147
@left
</string>
<!-- Whether the display cutout region of the main built-in display should be forced to
@@ -464,13 +469,6 @@
<!-- The default peak refresh rate. -->
<integer name="config_defaultPeakRefreshRate">120</integer>
<!-- The properties of a UDFPS sensor in pixels, in the order listed below: -->
<integer-array name="config_udfps_sensor_props" translatable="false" >
<item>720</item> <!-- <item>sensorLocationX</item> -->
<item>2490</item> <!-- <item>sensorLocationY</item> -->
<item>132</item> <!-- <item>sensorRadius</item> -->
</integer-array>
<!-- How long it takes for the HW to start illuminating after the illumination is requested. -->
<integer name="config_udfps_illumination_transition_ms">0</integer>
</resources>

View File

@@ -16,6 +16,6 @@
Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
-->
<dimen name="status_bar_height_default">30dp</dimen>
<dimen name="status_bar_height_portrait">137px</dimen>
<dimen name="status_bar_height_portrait">147px</dimen>
<dimen name="status_bar_height_landscape">30dp</dimen>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="status_bar_padding_top">63px</dimen>
<dimen name="status_bar_padding_top">53px</dimen>
</resources>

View File

@@ -17,4 +17,7 @@
<!-- Location on the screen of the center of the physical power button. This is a reasonable
default that should be overridden by device-specific overlays. -->
<dimen name="physical_power_button_center_screen_location_y">1380px</dimen>
<!-- Pixel pitch of the device. um/px -->
<item name="pixel_pitch" format="float" type="dimen">49.29</item>
</resources>

View File

@@ -5,9 +5,6 @@
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Whether to show Smooth Display feature in Settings Options -->
<bool name="config_show_smooth_display">true</bool>
<!-- The radius of the enrollment progress bar, in dp -->
<integer name="config_udfpsEnrollProgressBar" translatable="false">137</integer>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2024 Evolution X
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- About device screen, build maintainer -->
<string name="build_maintainer_summary">Joey Huab</string>
<string name="build_maintainer_donate_url">https://linktr.ee/joeyhuab</string>
</resources>

View File

@@ -1,13 +1,6 @@
# These proprietary files are extracted from venus OS1.0.2.0.UKBMIXM, note the pinned blobs
# These proprietary files are extracted from venus OS2.0.1.0.UKBEUXM, note the pinned blobs
# ACDB
vendor/etc/acdbdata/adsp_avs_config.acdb
vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.10.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.3.0_0.1__3.0.0_0.0__eai_1.00.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.3.0_0.1__3.0.0_0.0__eai_1.10.pmd
vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd
vendor/etc/acdbdata/nn_vad_models/fai__3.0.0_0.0__eai_1.10.pmd
vendor/etc/acdbdata/Tutu/Tutu_Bluetooth_cal.acdb
vendor/etc/acdbdata/Tutu/Tutu_General_cal.acdb
vendor/etc/acdbdata/Tutu/Tutu_Global_cal.acdb
@@ -16,6 +9,13 @@ vendor/etc/acdbdata/Tutu/Tutu_Hdmi_cal.acdb
vendor/etc/acdbdata/Tutu/Tutu_Headset_cal.acdb
vendor/etc/acdbdata/Tutu/Tutu_Speaker_cal.acdb
vendor/etc/acdbdata/Tutu/Tutu_workspaceFile.qwsp
vendor/etc/acdbdata/adsp_avs_config.acdb
vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.10.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.3.0_0.1__3.0.0_0.0__eai_1.00.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.3.0_0.1__3.0.0_0.0__eai_1.10.pmd
vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd
vendor/etc/acdbdata/nn_vad_models/fai__3.0.0_0.0__eai_1.10.pmd
# ACDB libraries
vendor/lib/libacdb-fts.so
@@ -25,10 +25,16 @@ vendor/lib/libadiertac.so
vendor/lib/libaudcal.so
# ADSP modules
vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Speech_Decoder.so
vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDADV_Encoder.so
vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Speech_Decoder.so
vendor/lib/rfsa/adsp/capi_v2_cirrus_sp.so
vendor/lib/rfsa/adsp/hrtf5c.bin
vendor/lib/rfsa/adsp/libMIAIHDR_skel.so
vendor/lib/rfsa/adsp/libQ6MSFR_manager_skel.so
vendor/lib/rfsa/adsp/libQnnHtpAltPrepSkel.so
vendor/lib/rfsa/adsp/libQnnHtpSkel.so
vendor/lib/rfsa/adsp/libVppAisQnnHtp.so
vendor/lib/rfsa/adsp/libVppQnnHtp.so
vendor/lib/rfsa/adsp/libadsp_jpege_skel.so
vendor/lib/rfsa/adsp/libapps_mem_heap.so
vendor/lib/rfsa/adsp/libarcsoft_hdrplus_hvx_skel.so
@@ -36,21 +42,17 @@ vendor/lib/rfsa/adsp/libbitml_nsp_skel.so
vendor/lib/rfsa/adsp/libbitml_nsp_v2_skel.so
vendor/lib/rfsa/adsp/libcamera_nn_skel.so
vendor/lib/rfsa/adsp/libcvpdsp_2_1.so
vendor/lib/rfsa/adsp/libdsp_streamer_binning.so
vendor/lib/rfsa/adsp/libdspCV_skel.so
vendor/lib/rfsa/adsp/libdsp_streamer_binning.so
vendor/lib/rfsa/adsp/libfastcvadsp.so
vendor/lib/rfsa/adsp/libfastcvdsp_skel.so
vendor/lib/rfsa/adsp/libhap_blink_skel.so
vendor/lib/rfsa/adsp/libhdr_skel.so
vendor/lib/rfsa/adsp/libmctfengine_skel.so
vendor/lib/rfsa/adsp/libMIAIHDR_skel.so
vendor/lib/rfsa/adsp/libmialgo_basic_cdsp_skel.so
vendor/lib/rfsa/adsp/libmialgo_mfnr_cdsp_skel.so
vendor/lib/rfsa/adsp/libmialgo_rfs_cdsp_skel.so
vendor/lib/rfsa/adsp/libmialgo_sfnr_cdsp_skel.so
vendor/lib/rfsa/adsp/libQ6MSFR_manager_skel.so
vendor/lib/rfsa/adsp/libQnnHtpAltPrepSkel.so
vendor/lib/rfsa/adsp/libQnnHtpSkel.so
vendor/lib/rfsa/adsp/libscveObjectSegmentation_skel.so
vendor/lib/rfsa/adsp/libscveT2T_skel.so
vendor/lib/rfsa/adsp/libsnpe_htp_v65_skel.so
@@ -60,8 +62,6 @@ vendor/lib/rfsa/adsp/libsns_device_mode_skel.so
vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so
vendor/lib/rfsa/adsp/libsuper_res_networks.so
vendor/lib/rfsa/adsp/libvpp_ais_networks.so
vendor/lib/rfsa/adsp/libVppAisQnnHtp.so
vendor/lib/rfsa/adsp/libVppQnnHtp.so
vendor/lib/rfsa/adsp/libvpt_action_recognition.so
vendor/lib/rfsa/adsp/misound_karaoke_res.bin
vendor/lib/rfsa/adsp/misound_karaokemix_res.bin
@@ -120,6 +120,13 @@ vendor/lib/libspkrprot.so
vendor/lib/libssrec.so
# Camera
vendor/lib/libbitmlengine.so
vendor/lib/libcamera_nn_stub.so
vendor/lib/libofflinelog.so
vendor/lib/libopencv.so
vendor/lib/vendor.xiaomi.hardware.cameraperf@1.0-impl.so
vendor/lib/vendor.xiaomi.hardware.cameraperf@1.0.so
vendor/lib64/HDR10plus.so
vendor/lib64/camera/com.qti.eeprom.venus_semco_s5khmx_m24c128x_wide_eeprom.so
vendor/lib64/camera/com.qti.eeprom.venus_sunny_ov13b10_gt24p64_ultra_eeprom.so
vendor/lib64/camera/com.qti.eeprom.venus_sunny_s5k3t2_gt24p64_front_eeprom.so
@@ -132,19 +139,15 @@ vendor/lib64/camera/com.qti.sensormodule.venus_semco_s5khmx_wide.bin
vendor/lib64/camera/com.qti.sensormodule.venus_sunny_ov13b10_ultra.bin
vendor/lib64/camera/com.qti.sensormodule.venus_sunny_s5k3t2_front.bin
vendor/lib64/camera/com.qti.sensormodule.venus_sunny_s5k5e9yx04_macro.bin
vendor/lib64/camera/com.qti.tuned.default.bin
vendor/lib64/camera/com.qti.tuned.venus_semco_s5khmx_wide.bin
vendor/lib64/camera/com.qti.tuned.venus_sunny_ov13b10_ultra.bin
vendor/lib64/camera/com.qti.tuned.venus_sunny_s5k3t2_front.bin
vendor/lib64/camera/com.qti.tuned.venus_sunny_s5k5e9yx04_macro.bin
vendor/lib64/camera/com.qti.tuned.default.bin
vendor/lib64/camera/fdconfigpreview.bin
vendor/lib64/camera/fdconfigpreviewlite.bin
vendor/lib64/camera/fdconfigvideo.bin
vendor/lib64/camera/fdconfigvideolite.bin
vendor/lib64/hw/camera.qcom.so
vendor/lib64/hw/camera.xiaomi.so
vendor/lib64/hw/com.qti.chi.override.so
vendor/lib64/HDR10plus.so
vendor/lib64/com.qti.chiusecaseselector.so
vendor/lib64/com.qti.feature2.anchorsync.so
vendor/lib64/com.qti.feature2.demux.so
@@ -180,11 +183,14 @@ vendor/lib64/com.qualcomm.mcx.distortionmapper.so
vendor/lib64/com.qualcomm.mcx.linearmapper.so
vendor/lib64/com.qualcomm.mcx.policy.mfl.so
vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so
vendor/lib64/hw/camera.qcom.so
vendor/lib64/hw/camera.xiaomi.so
vendor/lib64/hw/com.qti.chi.override.so
vendor/lib64/libBlinkStub.so
vendor/lib64/libI420colorconvert.so
vendor/lib64/libSNPE.so
vendor/lib64/libaidenoiser.so
vendor/lib64/libalAILDC.so
vendor/lib64/libalAILDC.so;DISABLE_CHECKELF
vendor/lib64/libalCFR.so
vendor/lib64/libalLDC.so
vendor/lib64/libalhLDC.so
@@ -195,25 +201,23 @@ vendor/lib64/libcamera_dirty.so
vendor/lib64/libcamera_nn_stub.so
vendor/lib64/libcamera_scene.so
vendor/lib64/libcamerapostproc.so
vendor/lib64/libcapiv2svacnn.so
vendor/lib64/libcapiv2svarnn.so
vendor/lib64/libcapiv2vop.so
vendor/lib64/libchilog.so
vendor/lib64/libcom.qti.chinodeutils.so
vendor/lib64/libcvface_api.so
vendor/lib64/libdualcam_optical_zoom_control.so
vendor/lib64/libdualcam_video_optical_zoom.so
vendor/lib64/libfocus.so
vendor/lib64/libhexagon_controller.so
vendor/lib64/libhdrdynamic.so
vendor/lib64/libhdrdynamicootf.so
vendor/lib64/libhexagon_controller.so
vendor/lib64/libipebpsstriping.so
vendor/lib64/libmiai_portraitsupernight.so
vendor/lib64/libmialgo_basic.so
vendor/lib64/libmialgo_ie_capture.so
vendor/lib64/libmialgo_ie_preview.so
vendor/lib64/libmialgo_image_colourkeeping.so
vendor/lib64/libmialgo_pureShot.so
vendor/lib64/libmialgo_rfs.so
vendor/lib64/libmialgo_pureShot.so;DISABLE_CHECKELF
vendor/lib64/libmialgo_rfs.so;DISABLE_CHECKELF
vendor/lib64/libmialgo_sd.so
vendor/lib64/libmialgo_utils.so
vendor/lib64/libmialgo_video_colourkeeping.so
@@ -223,26 +227,20 @@ vendor/lib64/libmialgoengine.so
vendor/lib64/libmibokeh_845_video.so
vendor/lib64/libmibokeh_855.so
vendor/lib64/libmibokeh_mask_dsp.so
vendor/lib64/libmiphone_preview_bokeh.so
vendor/lib64/libmiphone_preview_bokeh.so;DISABLE_CHECKELF
vendor/lib64/libmm-color-convertor.so
vendor/lib64/libmpbase.so
vendor/lib64/libnanopb.so
vendor/lib64/libofflinedump.so
vendor/lib64/libofflinelog.so
vendor/lib64/libopencv.so
vendor/lib64/libopestriping.so
vendor/lib64/libos.so
vendor/lib64/libqll10.so
vendor/lib64/libqllengine.so
vendor/lib64/libqllengine.so;DISABLE_CHECKELF
vendor/lib64/libremosaic_wrapper.so
vendor/lib64/libremosaiclib.so
vendor/lib64/libsnpe_htp.so
vendor/lib64/libsns_api.so
vendor/lib64/libsns_device_mode_stub.so
vendor/lib64/libsns_fastRPC_util.so
vendor/lib64/libsns_low_lat_stream_stub.so
vendor/lib64/libsns_registry_skel.so
vendor/lib64/libsnsapi.so
vendor/lib64/libsnsdiaglog.so
vendor/lib64/libswregistrationalgo.so
vendor/lib64/libsynx.so
vendor/lib64/libtfestriping.so
@@ -255,8 +253,8 @@ vendor/lib64/libvidhance.so
vendor/lib64/libxmi_hdr_checker.so
vendor/lib64/libxmi_high_dynamic_range.so
vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so
vendor/lib64/vendor.xiaomi.hardware.cameraperf@1.0.so
vendor/lib64/vendor.xiaomi.hardware.cameraperf@1.0-impl.so
vendor/lib64/vendor.xiaomi.hardware.cameraperf@1.0.so
vendor/lib64/vendor.xiaomi.hardware.campostproc@1.0-service-impl.so
vendor/lib64/vendor.xiaomi.hardware.campostproc@1.0.so
@@ -373,20 +371,6 @@ vendor/lib64/camera/components/com.xiaomi.node.tracker.so
vendor/lib64/camera/components/libdepthmapwrapper_secure.so
# Camera configs
vendor/etc/camera/xiaomi/dualbokehjpegsnapshot.json
vendor/etc/camera/xiaomi/dualbokehsnapshot.json
vendor/etc/camera/xiaomi/frontbokehsnapshot.json
vendor/etc/camera/xiaomi/frontsinglesnapshot.json
vendor/etc/camera/xiaomi/frontsupernightsnapshot.json
vendor/etc/camera/xiaomi/frontsupernightsnapshotjpeg.json
vendor/etc/camera/xiaomi/manualsnapshot.json
vendor/etc/camera/xiaomi/miviinfo.json
vendor/etc/camera/xiaomi/normalsnapshot.json
vendor/etc/camera/xiaomi/satsnapshot.json
vendor/etc/camera/xiaomi/superhdsnapshot.json
vendor/etc/camera/xiaomi/thirdpartydualbokehyuvsnapshot.json
vendor/etc/camera/xiaomi/thirdpartyjpegsnapshot.json
vendor/etc/camera/xiaomi/thirdpartysnapshot.json
vendor/etc/camera/CFR_para_MACRO_V01.bin
vendor/etc/camera/CFR_para_MACRO_V01_SN.bin
vendor/etc/camera/CFR_para_UW_V01.bin
@@ -395,8 +379,6 @@ vendor/etc/camera/CFR_para_W_V01.bin
vendor/etc/camera/CFR_para_W_V01_HD.bin
vendor/etc/camera/CFR_para_W_V01_IZOOM.bin
vendor/etc/camera/CFR_para_W_V01_SN.bin
vendor/etc/camera/deblur_sd_k2_opencl_binary.bin
vendor/etc/camera/deblur_sd_k2_opencl_params.bin
vendor/etc/camera/GpuKernelRepo.pb
vendor/etc/camera/LDC_FPC_TUNING_DATA.bin
vendor/etc/camera/LDC_FPC_TUNING_DATA_AI.bin
@@ -409,6 +391,8 @@ vendor/etc/camera/bokehParams.json
vendor/etc/camera/cache
vendor/etc/camera/camxoverridesettings.txt
vendor/etc/camera/com.xiaomi.dcal.wu.golden
vendor/etc/camera/deblur_sd_k2_opencl_binary.bin
vendor/etc/camera/deblur_sd_k2_opencl_params.bin
vendor/etc/camera/deblur_txt_gpu.dlc
vendor/etc/camera/det_quantize.dlc
vendor/etc/camera/eisoverridesettings.txt
@@ -428,6 +412,25 @@ vendor/etc/camera/siq_ocl_cache
vendor/etc/camera/sr_params.xml
vendor/etc/camera/superiq_model
vendor/etc/camera/vidhance_calibration
vendor/etc/camera/xiaomi/dualbokehjpegsnapshot.json
vendor/etc/camera/xiaomi/dualbokehsnapshot.json
vendor/etc/camera/xiaomi/frontbokehsnapshot.json
vendor/etc/camera/xiaomi/frontsinglesnapshot.json
vendor/etc/camera/xiaomi/frontsupernightsnapshot.json
vendor/etc/camera/xiaomi/frontsupernightsnapshotjpeg.json
vendor/etc/camera/xiaomi/manualsnapshot.json
vendor/etc/camera/xiaomi/miviinfo.json
vendor/etc/camera/xiaomi/normalsnapshot.json
vendor/etc/camera/xiaomi/satsnapshot.json
vendor/etc/camera/xiaomi/superhdsnapshot.json
vendor/etc/camera/xiaomi/thirdpartydualbokehyuvsnapshot.json
vendor/etc/camera/xiaomi/thirdpartyjpegsnapshot.json
vendor/etc/camera/xiaomi/thirdpartysnapshot.json
# Camera-firmware
vendor/firmware/CAMERA_ICP.elf
vendor/firmware/venus_bu63169_ois.coeff
vendor/firmware/venus_bu63169_ois.prog
# Camera plugins
vendor/lib64/camera/plugins/com.qcom.plugin.gpu.so
@@ -460,23 +463,18 @@ vendor/lib64/librelight_only.so
vendor/lib64/libsdk_sr.so
vendor/lib64/libsupermoon.so
# Camera-firmware
vendor/firmware/CAMERA_ICP.elf
vendor/firmware/venus_bu63169_ois.coeff
vendor/firmware/venus_bu63169_ois.prog
# Camera-sensors
vendor/lib/libjpege.so
vendor/lib/libmctfengine_stub.so
vendor/lib/libmmcamera_cac3.so
vendor/lib/libmmcamera_faceproc.so
vendor/lib/libmmcamera_faceproc.so;DISABLE_CHECKELF
vendor/lib/libmmcamera_faceproc2.so
vendor/lib/libmmcamera_lscv35.so
vendor/lib/libmmcamera_mfnr.so
vendor/lib64/libjpege.so
vendor/lib64/libmctfengine_stub.so
vendor/lib64/libmmcamera_cac3.so
vendor/lib64/libmmcamera_faceproc.so
vendor/lib64/libmmcamera_faceproc.so;DISABLE_CHECKELF
vendor/lib64/libmmcamera_faceproc2.so
vendor/lib64/libmmcamera_lscv35.so
vendor/lib64/libmmcamera_mfnr.so
@@ -531,22 +529,17 @@ vendor/firmware/evass.mbn
vendor/firmware/evass.mdt
# Display calibration
vendor/etc/display/DPU660.xml
vendor/etc/display/DPU670.xml
vendor/etc/display/DPU7__.xml
vendor/etc/display/advanced_sf_offsets.xml
vendor/etc/ltm_config_xiaomi_38_08_0a_cmd_mode_dsc_dsi_panel.xml
vendor/etc/qdcm_calib_data_xiaomi_38_08_0a_cmd_mode_dsc_dsi_panel.xml
vendor/etc/mdss_dsi_k2_38_08_0a_dsc_cmd_mi.xml
vendor/etc/mdss_dsi_k2_38_08_0a_mp_dsc_cmd_mi.xml
vendor/etc/mdss_dsi_k2b_38_08_0a_dsc_cmd_mi.xml
vendor/etc/qdcm_calib_data_xiaomi_38_08_0a_cmd_mode_dsc_dsi_panel.xml
# Fingerprint - from MIUI 13
-vendor/etc/vintf/manifest/fod.xml|0787f763410fce0aae90a3afd807e9fdb2e6ccc4
vendor/lib64/hw/fingerprint.goodix_fod.so:vendor/lib64/hw/fingerprint.goodix_fod.lahaina.so|ff22a59c5dd58b83b0faaac74255d2cba7ebab11
vendor/lib64/com.fingerprints.extension@3.0.so|9e9bf48b9dff08f500734027f7bb5e382df69fef
vendor/lib64/libgf_hal.so|84e9eda18070c6bbfbfc87cc1ac5be2e28a4012e
vendor/lib64/vendor.xiaomi.hardware.fx.tunnel@1.0.so|ab271b272f9cf53ca65ab1e457d5cd8ddebc87f7
# Fingerprint
vendor/etc/vintf/manifest/fod.xml
vendor/lib64/com.fingerprints.extension@3.0.so
vendor/lib64/hw/fingerprint.goodix_fod.so:vendor/lib64/hw/fingerprint.goodix_fod.lahaina.so;FIX_SONAME
vendor/lib64/libgf_hal.so
# Fingerprint dtool
vendor/bin/hw/vendor.xiaomi.hardware.dtool@1.0-service
@@ -623,9 +616,9 @@ vendor/firmware/vpu20_4v.mdt
vendor/firmware/vpu20_4v_unsigned.mbn
# NFC configs
vendor/etc/libnfc-nxp_RF.conf:vendor/libnfc-nxp_RF.conf
vendor/etc/libnfc-nci.conf
vendor/etc/libnfc-nxp.conf
vendor/etc/libnfc-nxp_RF.conf:vendor/libnfc-nxp_RF.conf
# Sensors
vendor/bin/init.qcom.sensors.sh
@@ -636,7 +629,7 @@ vendor/etc/init/init.vendor.sensors.rc
vendor/etc/init/vendor.sensors.qti.rc
vendor/etc/init/vendor.sensors.sscrpcd.rc
vendor/lib64/libnanopb.so
vendor/lib64/libnotifyaudiohal.so
vendor/lib64/libnotifyaudiohal.so;FIX_SONAME
vendor/lib64/libsensorcal.so
vendor/lib64/libsensorslog.so
vendor/lib64/libsns_api.so
@@ -654,11 +647,21 @@ vendor/lib64/sensors.mius.proximity.so
vendor/lib64/sensors.ssc.so
vendor/lib64/sensors.touch.detect.so
# Sensors (citsensor)
vendor/bin/hw/vendor.xiaomi.hardware.citsensorservice@1.1-service
vendor/etc/init/vendor.xiaomi.hardware.citsensorservice@1.1-service.rc
vendor/etc/vintf/manifest/vendor.xiaomi.hardware.citsensorservice@1.1-service.xml
vendor/lib64/hw/vendor.xiaomi.hardware.citsensorservice@1.1-impl.so
vendor/lib64/vendor.xiaomi.hardware.citsensorservice@1.0.so
vendor/lib64/vendor.xiaomi.hardware.citsensorservice@1.1.so
# Sensors configs
vendor/etc/sensor_diag.cfg
vendor/etc/sensors/config/ak991x_dri_0.json
vendor/etc/sensors/config/bmp285_0.json
vendor/etc/sensors/config/bu27030_0_back.json
vendor/etc/sensors/config/lsm6dso_0.json
vendor/etc/sensors/config/power_0.json
vendor/etc/sensors/config/sm8350_ak991x_0.json
vendor/etc/sensors/config/sm8350_bmp285_0.json
vendor/etc/sensors/config/sm8350_bu27030_0_back.json
@@ -669,6 +672,7 @@ vendor/etc/sensors/config/sm8350_irq.json
vendor/etc/sensors/config/sm8350_lsm6dso_0.json
vendor/etc/sensors/config/sm8350_power_0.json
vendor/etc/sensors/config/sm8350_sx932x_0.json
vendor/etc/sensors/config/sm8350_sx933x_0.json
vendor/etc/sensors/config/sm8350_tcs3408.json
vendor/etc/sensors/config/sm8350_tmd3719.json
vendor/etc/sensors/config/sm8350_vl53l1_tof_0.json
@@ -693,6 +697,7 @@ vendor/etc/sensors/config/sns_facing.json
vendor/etc/sensors/config/sns_fmv.json
vendor/etc/sensors/config/sns_geomag_rv.json
vendor/etc/sensors/config/sns_gyro_cal.json
vendor/etc/sensors/config/sns_hand_detect.json
vendor/etc/sensors/config/sns_heart_rate.json
vendor/etc/sensors/config/sns_mag_cal.json
vendor/etc/sensors/config/sns_mag_cal_legacy.json
@@ -709,16 +714,12 @@ vendor/etc/sensors/config/sns_tilt_sw_enabled.json
vendor/etc/sensors/config/sns_tilt_to_wake.json
vendor/etc/sensors/config/sns_wrist_pedo.json
vendor/etc/sensors/config/sx932x_0.json
vendor/etc/sensors/config/sx933x_0.json
vendor/etc/sensors/config/tcs3408.json
vendor/etc/sensors/config/tmd3719.json
vendor/etc/sensors/config/vl53l1_tof_0.json
vendor/etc/sensors/config/power_0.json
vendor/etc/sensors/config/sm8350_sx933x_0.json
vendor/etc/sensors/config/sns_hand_detect.json
vendor/etc/sensors/config/sx933x_0.json
vendor/etc/sensors/judge_calibrated.json
vendor/etc/sensors/sns_reg_config
vendor/etc/sensor_diag.cfg
# Thermal config
vendor/etc/thermal-4k.conf
@@ -744,8 +745,8 @@ vendor/etc/thermald-devices.conf
# Touchscreen firmware
vendor/firmware/st_fts_k2.ftb
vendor/firmware/st_fts_k2_htp.ftb
vendor/firmware/st_fts_k2.ftb:vendor_ramdisk/lib/firmware/st_fts_k2.ftb
vendor/firmware/st_fts_k2_htp.ftb
vendor/firmware/st_fts_k2_htp.ftb:vendor_ramdisk/lib/firmware/st_fts_k2_htp.ftb
# Vibrator firmware

View File

@@ -1,20 +0,0 @@
## All proprietary files from this list, unless pinned and noted otherwise,
## are from miui_VENUSGlobal_V14.0.7.0.TKBMIXM
abl.img;AB
aop.img;AB
bluetooth.img;AB
cpucp.img;AB
devcfg.img;AB
dsp.img;AB
featenabler.img;AB
hyp.img;AB
imagefv.img;AB
keymaster.img;AB
modem.img;AB
qupfw.img;AB
shrm.img;AB
tz.img;AB
uefisecapp.img;AB
xbl_config.img;AB
xbl.img;AB

View File

@@ -1,35 +0,0 @@
//
// Copyright (C) 2022 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
cc_library_shared {
name: "sensors.xiaomi.venus",
defaults: ["hidl_defaults"],
srcs: [
"Sensor.cpp",
"SensorsSubHal.cpp",
],
shared_libs: [
"android.hardware.sensors@1.0",
"android.hardware.sensors@2.0",
"android.hardware.sensors@2.0-ScopedWakelock",
"android.hardware.sensors@2.1",
"libcutils",
"libfmq",
"libhardware",
"libhidlbase",
"liblog",
"libpower",
"libutils",
],
static_libs: [
"android.hardware.sensors@1.0-convert",
"android.hardware.sensors@2.X-multihal",
],
cflags: [
"-DLOG_TAG=\"sensors.xiaomi.venus\"",
],
vendor: true,
}

View File

@@ -1,347 +0,0 @@
/*
* 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.
*/
#include "Sensor.h"
#include <hardware/sensors.h>
#include <log/log.h>
#include <utils/SystemClock.h>
#include <cmath>
namespace {
static bool readFpState(int fd, int& screenX, int& screenY) {
char buffer[512];
int state = 0;
int rc;
rc = lseek(fd, 0, SEEK_SET);
if (rc) {
ALOGE("failed to seek: %d", rc);
return false;
}
rc = read(fd, &buffer, sizeof(buffer));
if (rc < 0) {
ALOGE("failed to read state: %d", rc);
return false;
}
rc = sscanf(buffer, "%d,%d,%d", &screenX, &screenY, &state);
if (rc == 1) {
// If only the first variable can be matched assume
// that the node only reports the state
state = screenX;
screenX = 0;
screenY = 0;
} else if (rc < 3) {
ALOGE("failed to parse fp state: %d", rc);
return false;
}
return state > 0;
}
} // anonymous namespace
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
using ::android::hardware::sensors::V1_0::MetaDataEventType;
using ::android::hardware::sensors::V1_0::OperationMode;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V1_0::SensorFlagBits;
using ::android::hardware::sensors::V1_0::SensorStatus;
using ::android::hardware::sensors::V2_1::Event;
using ::android::hardware::sensors::V2_1::SensorInfo;
using ::android::hardware::sensors::V2_1::SensorType;
Sensor::Sensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: mIsEnabled(false),
mSamplingPeriodNs(0),
mLastSampleTimeNs(0),
mCallback(callback),
mMode(OperationMode::NORMAL) {
mSensorInfo.sensorHandle = sensorHandle;
mSensorInfo.vendor = "The LineageOS Project";
mSensorInfo.version = 1;
constexpr float kDefaultMaxDelayUs = 1000 * 1000;
mSensorInfo.maxDelay = kDefaultMaxDelayUs;
mSensorInfo.fifoReservedEventCount = 0;
mSensorInfo.fifoMaxEventCount = 0;
mSensorInfo.requiredPermission = "";
mSensorInfo.flags = 0;
mRunThread = std::thread(startThread, this);
}
Sensor::~Sensor() {
// Ensure that lock is unlocked before calling mRunThread.join() or a
// deadlock will occur.
{
std::unique_lock<std::mutex> lock(mRunMutex);
mStopThread = true;
mIsEnabled = false;
mWaitCV.notify_all();
}
mRunThread.join();
}
const SensorInfo& Sensor::getSensorInfo() const {
return mSensorInfo;
}
void Sensor::batch(int32_t samplingPeriodNs) {
samplingPeriodNs =
std::clamp(samplingPeriodNs, mSensorInfo.minDelay * 1000, mSensorInfo.maxDelay * 1000);
if (mSamplingPeriodNs != samplingPeriodNs) {
mSamplingPeriodNs = samplingPeriodNs;
// Wake up the 'run' thread to check if a new event should be generated now
mWaitCV.notify_all();
}
}
void Sensor::activate(bool enable) {
std::lock_guard<std::mutex> lock(mRunMutex);
if (mIsEnabled != enable) {
mIsEnabled = enable;
mWaitCV.notify_all();
}
}
Result Sensor::flush() {
// Only generate a flush complete event if the sensor is enabled and if the sensor is not a
// one-shot sensor.
if (!mIsEnabled) {
return Result::BAD_VALUE;
}
// Note: If a sensor supports batching, write all of the currently batched events for the sensor
// to the Event FMQ prior to writing the flush complete event.
Event ev;
ev.sensorHandle = mSensorInfo.sensorHandle;
ev.sensorType = SensorType::META_DATA;
ev.u.meta.what = MetaDataEventType::META_DATA_FLUSH_COMPLETE;
std::vector<Event> evs{ev};
mCallback->postEvents(evs, isWakeUpSensor());
return Result::OK;
}
void Sensor::startThread(Sensor* sensor) {
sensor->run();
}
void Sensor::run() {
std::unique_lock<std::mutex> runLock(mRunMutex);
constexpr int64_t kNanosecondsInSeconds = 1000 * 1000 * 1000;
while (!mStopThread) {
if (!mIsEnabled || mMode == OperationMode::DATA_INJECTION) {
mWaitCV.wait(runLock, [&] {
return ((mIsEnabled && mMode == OperationMode::NORMAL) || mStopThread);
});
} else {
timespec curTime;
clock_gettime(CLOCK_REALTIME, &curTime);
int64_t now = (curTime.tv_sec * kNanosecondsInSeconds) + curTime.tv_nsec;
int64_t nextSampleTime = mLastSampleTimeNs + mSamplingPeriodNs;
if (now >= nextSampleTime) {
mLastSampleTimeNs = now;
nextSampleTime = mLastSampleTimeNs + mSamplingPeriodNs;
mCallback->postEvents(readEvents(), isWakeUpSensor());
}
mWaitCV.wait_for(runLock, std::chrono::nanoseconds(nextSampleTime - now));
}
}
}
bool Sensor::isWakeUpSensor() {
return mSensorInfo.flags & static_cast<uint32_t>(SensorFlagBits::WAKE_UP);
}
std::vector<Event> Sensor::readEvents() {
std::vector<Event> events;
Event event;
event.sensorHandle = mSensorInfo.sensorHandle;
event.sensorType = mSensorInfo.type;
event.timestamp = ::android::elapsedRealtimeNano();
event.u.vec3.x = 0;
event.u.vec3.y = 0;
event.u.vec3.z = 0;
event.u.vec3.status = SensorStatus::ACCURACY_HIGH;
events.push_back(event);
return events;
}
void Sensor::setOperationMode(OperationMode mode) {
std::lock_guard<std::mutex> lock(mRunMutex);
if (mMode != mode) {
mMode = mode;
mWaitCV.notify_all();
}
}
bool Sensor::supportsDataInjection() const {
return mSensorInfo.flags & static_cast<uint32_t>(SensorFlagBits::DATA_INJECTION);
}
Result Sensor::injectEvent(const Event& event) {
Result result = Result::OK;
if (event.sensorType == SensorType::ADDITIONAL_INFO) {
// When in OperationMode::NORMAL, SensorType::ADDITIONAL_INFO is used to push operation
// environment data into the device.
} else if (!supportsDataInjection()) {
result = Result::INVALID_OPERATION;
} else if (mMode == OperationMode::DATA_INJECTION) {
mCallback->postEvents(std::vector<Event>{event}, isWakeUpSensor());
} else {
result = Result::BAD_VALUE;
}
return result;
}
OneShotSensor::OneShotSensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: Sensor(sensorHandle, callback) {
mSensorInfo.minDelay = -1;
mSensorInfo.maxDelay = 0;
mSensorInfo.flags |= SensorFlagBits::ONE_SHOT_MODE;
}
UdfpsSensor::UdfpsSensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: OneShotSensor(sensorHandle, callback) {
mSensorInfo.name = "UDFPS Sensor";
mSensorInfo.type =
static_cast<SensorType>(static_cast<int32_t>(SensorType::DEVICE_PRIVATE_BASE) + 1);
mSensorInfo.typeAsString = "org.lineageos.sensor.udfps";
mSensorInfo.maxRange = 2048.0f;
mSensorInfo.resolution = 1.0f;
mSensorInfo.power = 0;
mSensorInfo.flags |= SensorFlagBits::WAKE_UP;
int rc;
rc = pipe(mWaitPipeFd);
if (rc < 0) {
mWaitPipeFd[0] = -1;
mWaitPipeFd[1] = -1;
ALOGE("failed to open wait pipe: %d", rc);
}
mPollFd = open("/sys/devices/virtual/touch/touch_dev/fod_press_status", O_RDONLY);
if (mPollFd < 0) {
ALOGE("failed to open poll fd: %d", mPollFd);
}
if (mWaitPipeFd[0] < 0 || mWaitPipeFd[1] < 0 || mPollFd < 0) {
mStopThread = true;
return;
}
mPolls[0] = {
.fd = mWaitPipeFd[0],
.events = POLLIN,
};
mPolls[1] = {
.fd = mPollFd,
.events = POLLERR | POLLPRI,
};
}
UdfpsSensor::~UdfpsSensor() {
interruptPoll();
}
void UdfpsSensor::activate(bool enable) {
std::lock_guard<std::mutex> lock(mRunMutex);
if (mIsEnabled != enable) {
mIsEnabled = enable;
interruptPoll();
mWaitCV.notify_all();
}
}
void UdfpsSensor::setOperationMode(OperationMode mode) {
Sensor::setOperationMode(mode);
interruptPoll();
}
void UdfpsSensor::run() {
std::unique_lock<std::mutex> runLock(mRunMutex);
while (!mStopThread) {
if (!mIsEnabled || mMode == OperationMode::DATA_INJECTION) {
mWaitCV.wait(runLock, [&] {
return ((mIsEnabled && mMode == OperationMode::NORMAL) || mStopThread);
});
} else {
// Cannot hold lock while polling.
runLock.unlock();
int rc = poll(mPolls, 2, -1);
runLock.lock();
if (rc < 0) {
ALOGE("failed to poll: %d", rc);
mStopThread = true;
continue;
}
if (mPolls[1].revents == mPolls[1].events && readFpState(mPollFd, mScreenX, mScreenY)) {
mIsEnabled = false;
mCallback->postEvents(readEvents(), isWakeUpSensor());
} else if (mPolls[0].revents == mPolls[0].events) {
char buf;
read(mWaitPipeFd[0], &buf, sizeof(buf));
}
}
}
}
std::vector<Event> UdfpsSensor::readEvents() {
std::vector<Event> events;
Event event;
event.sensorHandle = mSensorInfo.sensorHandle;
event.sensorType = mSensorInfo.type;
event.timestamp = ::android::elapsedRealtimeNano();
event.u.data[0] = mScreenX;
event.u.data[1] = mScreenY;
events.push_back(event);
return events;
}
void UdfpsSensor::interruptPoll() {
if (mWaitPipeFd[1] < 0) return;
char c = '1';
write(mWaitPipeFd[1], &c, sizeof(c));
}
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android

View File

@@ -1,122 +0,0 @@
/*
* 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.
*/
#pragma once
#include <android/hardware/sensors/2.1/types.h>
#include <fcntl.h>
#include <poll.h>
#include <unistd.h>
#include <condition_variable>
#include <memory>
#include <mutex>
#include <thread>
#include <vector>
using ::android::hardware::sensors::V1_0::OperationMode;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V2_1::Event;
using ::android::hardware::sensors::V2_1::SensorInfo;
using ::android::hardware::sensors::V2_1::SensorType;
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
class ISensorsEventCallback {
public:
virtual ~ISensorsEventCallback(){};
virtual void postEvents(const std::vector<Event>& events, bool wakeup) = 0;
};
class Sensor {
public:
Sensor(int32_t sensorHandle, ISensorsEventCallback* callback);
virtual ~Sensor();
const SensorInfo& getSensorInfo() const;
virtual void batch(int32_t samplingPeriodNs);
virtual void activate(bool enable);
virtual Result flush();
virtual void setOperationMode(OperationMode mode);
bool supportsDataInjection() const;
Result injectEvent(const Event& event);
protected:
virtual void run();
virtual std::vector<Event> readEvents();
static void startThread(Sensor* sensor);
bool isWakeUpSensor();
bool mIsEnabled;
int64_t mSamplingPeriodNs;
int64_t mLastSampleTimeNs;
SensorInfo mSensorInfo;
std::atomic_bool mStopThread;
std::condition_variable mWaitCV;
std::mutex mRunMutex;
std::thread mRunThread;
ISensorsEventCallback* mCallback;
OperationMode mMode;
};
class OneShotSensor : public Sensor {
public:
OneShotSensor(int32_t sensorHandle, ISensorsEventCallback* callback);
virtual void batch(int32_t /* samplingPeriodNs */) override {}
virtual Result flush() override { return Result::BAD_VALUE; }
};
class UdfpsSensor : public OneShotSensor {
public:
UdfpsSensor(int32_t sensorHandle, ISensorsEventCallback* callback);
virtual ~UdfpsSensor() override;
virtual void activate(bool enable) override;
virtual void setOperationMode(OperationMode mode) override;
protected:
virtual void run() override;
virtual std::vector<Event> readEvents();
private:
void interruptPoll();
struct pollfd mPolls[2];
int mWaitPipeFd[2];
int mPollFd;
int mScreenX;
int mScreenY;
};
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android

View File

@@ -1,162 +0,0 @@
/*
* 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.
*/
#include "SensorsSubHal.h"
#include <android/hardware/sensors/2.1/types.h>
#include <log/log.h>
using ::android::hardware::sensors::V2_1::implementation::ISensorsSubHal;
using ::android::hardware::sensors::V2_1::subhal::implementation::SensorsSubHal;
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
using ::android::hardware::Void;
using ::android::hardware::sensors::V2_0::implementation::ScopedWakelock;
SensorsSubHal::SensorsSubHal() : mCallback(nullptr), mNextHandle(1) {
AddSensor<UdfpsSensor>();
}
Return<void> SensorsSubHal::getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) {
std::vector<SensorInfo> sensors;
for (const auto& sensor : mSensors) {
sensors.push_back(sensor.second->getSensorInfo());
}
_hidl_cb(sensors);
return Void();
}
Return<Result> SensorsSubHal::setOperationMode(OperationMode mode) {
for (auto sensor : mSensors) {
sensor.second->setOperationMode(mode);
}
mCurrentOperationMode = mode;
return Result::OK;
}
Return<Result> SensorsSubHal::activate(int32_t sensorHandle, bool enabled) {
auto sensor = mSensors.find(sensorHandle);
if (sensor != mSensors.end()) {
sensor->second->activate(enabled);
return Result::OK;
}
return Result::BAD_VALUE;
}
Return<Result> SensorsSubHal::batch(int32_t sensorHandle, int64_t samplingPeriodNs,
int64_t /* maxReportLatencyNs */) {
auto sensor = mSensors.find(sensorHandle);
if (sensor != mSensors.end()) {
sensor->second->batch(samplingPeriodNs);
return Result::OK;
}
return Result::BAD_VALUE;
}
Return<Result> SensorsSubHal::flush(int32_t sensorHandle) {
auto sensor = mSensors.find(sensorHandle);
if (sensor != mSensors.end()) {
return sensor->second->flush();
}
return Result::BAD_VALUE;
}
Return<Result> SensorsSubHal::injectSensorData_2_1(const Event& event) {
auto sensor = mSensors.find(event.sensorHandle);
if (sensor != mSensors.end()) {
return sensor->second->injectEvent(event);
}
return Result::BAD_VALUE;
}
Return<void> SensorsSubHal::registerDirectChannel(const SharedMemInfo& /* mem */,
ISensors::registerDirectChannel_cb _hidl_cb) {
_hidl_cb(Result::INVALID_OPERATION, -1 /* channelHandle */);
return Return<void>();
}
Return<Result> SensorsSubHal::unregisterDirectChannel(int32_t /* channelHandle */) {
return Result::INVALID_OPERATION;
}
Return<void> SensorsSubHal::configDirectReport(int32_t /* sensorHandle */,
int32_t /* channelHandle */, RateLevel /* rate */,
ISensors::configDirectReport_cb _hidl_cb) {
_hidl_cb(Result::INVALID_OPERATION, 0 /* reportToken */);
return Return<void>();
}
Return<void> SensorsSubHal::debug(const hidl_handle& fd, const hidl_vec<hidl_string>& args) {
if (fd.getNativeHandle() == nullptr || fd->numFds < 1) {
ALOGE("%s: missing fd for writing", __FUNCTION__);
return Void();
}
FILE* out = fdopen(dup(fd->data[0]), "w");
if (args.size() != 0) {
fprintf(out,
"Note: sub-HAL %s currently does not support args. Input arguments are "
"ignored.\n",
getName().c_str());
}
std::ostringstream stream;
stream << "Available sensors:" << std::endl;
for (auto sensor : mSensors) {
SensorInfo info = sensor.second->getSensorInfo();
stream << "Name: " << info.name << std::endl;
stream << "Min delay: " << info.minDelay << std::endl;
stream << "Flags: " << info.flags << std::endl;
}
stream << std::endl;
fprintf(out, "%s", stream.str().c_str());
fclose(out);
return Return<void>();
}
Return<Result> SensorsSubHal::initialize(const sp<IHalProxyCallback>& halProxyCallback) {
mCallback = halProxyCallback;
setOperationMode(OperationMode::NORMAL);
return Result::OK;
}
void SensorsSubHal::postEvents(const std::vector<Event>& events, bool wakeup) {
ScopedWakelock wakelock = mCallback->createScopedWakelock(wakeup);
mCallback->postEvents(events, std::move(wakelock));
}
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android
ISensorsSubHal* sensorsHalGetSubHal_2_1(uint32_t* version) {
static SensorsSubHal subHal;
*version = SUB_HAL_2_1_VERSION;
return &subHal;
}

View File

@@ -1,95 +0,0 @@
/*
* 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.
*/
#pragma once
#include <vector>
#include "Sensor.h"
#include "V2_1/SubHal.h"
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
using ::android::hardware::sensors::V1_0::OperationMode;
using ::android::hardware::sensors::V1_0::RateLevel;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V1_0::SharedMemInfo;
using ::android::hardware::sensors::V2_1::Event;
using ::android::hardware::sensors::V2_1::implementation::IHalProxyCallback;
using ::android::hardware::sensors::V2_1::implementation::ISensorsSubHal;
class SensorsSubHal : public ISensorsSubHal, public ISensorsEventCallback {
public:
SensorsSubHal();
Return<void> getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb);
Return<Result> injectSensorData_2_1(const Event& event);
Return<Result> initialize(const sp<IHalProxyCallback>& halProxyCallback);
virtual Return<Result> setOperationMode(OperationMode mode);
OperationMode getOperationMode() const { return mCurrentOperationMode; }
Return<Result> activate(int32_t sensorHandle, bool enabled);
Return<Result> batch(int32_t sensorHandle, int64_t samplingPeriodNs,
int64_t maxReportLatencyNs);
Return<Result> flush(int32_t sensorHandle);
Return<void> registerDirectChannel(const SharedMemInfo& mem,
ISensors::registerDirectChannel_cb _hidl_cb);
Return<Result> unregisterDirectChannel(int32_t channelHandle);
Return<void> configDirectReport(int32_t sensorHandle, int32_t channelHandle, RateLevel rate,
ISensors::configDirectReport_cb _hidl_cb);
Return<void> debug(const hidl_handle& fd, const hidl_vec<hidl_string>& args);
const std::string getName() { return "FakeSubHal"; }
void postEvents(const std::vector<Event>& events, bool wakeup) override;
protected:
template <class SensorType>
void AddSensor() {
std::shared_ptr<SensorType> sensor =
std::make_shared<SensorType>(mNextHandle++ /* sensorHandle */, this /* callback */);
mSensors[sensor->getSensorInfo().sensorHandle] = sensor;
}
std::map<int32_t, std::shared_ptr<Sensor>> mSensors;
sp<IHalProxyCallback> mCallback;
private:
OperationMode mCurrentOperationMode = OperationMode::NORMAL;
int32_t mNextHandle;
};
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android

View File

@@ -1,4 +1,4 @@
sensors.elliptic@2.0.so
sensors.ssc.so
sensors.touch.detect.so
sensors.xiaomi.venus.so
sensors.xiaomi.v2.so

1
setup-makefiles.py Executable file
View File

@@ -0,0 +1 @@
#!./extract-files.py --regenerate_makefiles

View File

@@ -1,15 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
# Required!
export DEVICE=venus
export DEVICE_COMMON=sm8350-common
export VENDOR=xiaomi
"./../../${VENDOR}/${DEVICE_COMMON}/setup-makefiles.sh" "$@"

12
vendor.prop Normal file
View File

@@ -0,0 +1,12 @@
# Bluetooth
bluetooth.device.default_name=Mi 11
# Fingerprint
persist.vendor.fingerprint.type=udfps_optical
persist.vendor.fingerprint.sensor_location=720|2490|132
# Sensors
ro.vendor.sensors.xiaomi.udfps=true
# USB
vendor.usb.product_string=Mi 11