41 Commits

Author SHA1 Message Date
Rodney Etienne
91c13abaf3 sdm710-common: Add vendor 2024-10-16 15:27:55 -04:00
Rodney Etienne
fe252e5146 sdm710-common: Fix up dependencies 2024-10-16 15:15:30 -04:00
Sebastiano Barezzi
b5392cec63 sdm710-common: Move to Xiaomi IR AIDL
Change-Id: I46094bcbfaba252b5d98ea8211b927fdaa079e2d
2024-10-16 15:09:58 -04:00
Yumi Yukimura
e4af6c3a11 sdm710-common: Switch to QTI Memtrack AIDL HAL
Change-Id: Ibcbaff02fd56fbccc3a88c01a5f46a89cb212ef5
2024-10-16 15:09:35 -04:00
DeadSomeOne
e9cf214ca3 sdm710-common: Build additional packages
Both packages are required for WFD display or it will crash and display the following:

E AndroidRuntime: FATAL EXCEPTION: binder:13993_3
E AndroidRuntime: Process: com.qualcomm.wfd.service:wfd_service, PID: 13993
E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "vendor.qti.hardware.display.config-V5-ndk.so" not found: needed by /system_ext/lib64/libwfddisplayconfig.so in namespace clns-shared-4
E AndroidRuntime: 	at java.lang.Runtime.loadLibrary0(Runtime.java:1081)
E AndroidRuntime: 	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
E AndroidRuntime: 	at java.lang.System.loadLibrary(System.java:1765)
E AndroidRuntime: 	at com.qualcomm.wfd.WFDSession.<clinit>(WFDSession.java:56)
E AndroidRuntime: 	at com.qualcomm.wfd.service.SessionManagerService.setDeviceType(SessionManagerService.java:220)
E AndroidRuntime: 	at com.qualcomm.wfd.service.ISessionManagerService$Stub.onTransact(ISessionManagerService.java:651)
E AndroidRuntime: 	at android.os.Binder.execTransactInternal(Binder.java:1505)
E AndroidRuntime: 	at android.os.Binder.execTransact(Binder.java:1444)
F linker  : CANNOT LINK EXECUTABLE "/system_ext/bin/wfdservice": library "android.media.audio.common.types-V2-cpp.so" not found: needed by /system_ext/lib/libwfdservice.so in namespace (default)
2024-07-07 23:14:53 -04:00
Rodney Etienne
e924a84185 sdm710-common: Initialize for Evolution X 9.x 2024-07-05 16:17:36 -04:00
Rodney Etienne
304a1022b9 sdm710-common: fix missing separator 2024-07-01 17:12:13 -04:00
Rodney Etienne
5505bb39b3 sdm710-common: Setup DeviceAsWebcam
* USB VID & PID are taken from gs101 UsbGadget.cpp
* bDeviceClass related entries are taken from init.qcom.usb.rc
2024-07-01 16:59:35 -04:00
Rodney Etienne
a6bbd773fe sdm710-common: Remove software omx codec references
These are no longer available as of Android 14 QPR3. The C2 codecs
available by default in the swcodec apex will be used instead.
2024-07-01 16:21:39 -04:00
Rodney Etienne
1af6e96f5e sdm710-common: Import media codecs files
We need to remove references to software OMX codecs so we cannot ship it
via proprietary-files.txt
2024-07-01 16:19:20 -04:00
Rodney Etienne
8751434b8f sdm710-common: Build missing libraries for 14 QPR3 2024-07-01 16:16:54 -04:00
Rodney Etienne
d3f2aad977 sdm710-common: Remove unused manifest entries 2024-07-01 16:13:57 -04:00
Rodney Etienne
7039fde736 sdm710-common: Add a device specific FCM 2024-07-01 16:12:48 -04:00
Rodney Etienne
f829507e1d sdm710-common: Inherit from legacy QTI FCM 2024-07-01 16:11:18 -04:00
Rodney Etienne
fffd053076 sdm710-common: Include lineage DCM 2024-07-01 16:10:06 -04:00
Rodney Etienne
86c7d55f3f sdm710-common: Inherit from QTI and common Xiaomi FCMs 2024-07-01 16:08:13 -04:00
Rodney Etienne
5e1ea7e816 sdm710-common: Set manifest target-level to 5 2024-07-01 16:07:08 -04:00
Rodney Etienne
bd207a5299 sdm710-common: Disable the usage of ConfigStore.
* As per commit LineageOS/android_hardware_interfaces@11a113a ("Add disable_configstore").
2024-07-01 16:06:11 -04:00
Rodney Etienne
fca082d6cb sdm710-common: Set debug.sf.auto_latch_unsignaled to 0
Need to explicitly set auto_latch_unsignaled property to
disabled state to keep latch-unsignaled as the default
behavior.
2024-07-01 16:03:03 -04:00
Rodney Etienne
b866caa030 sdm710-common: Enforce vintf kernel requirements
The build system enables this for shipping API level >=29
but we also want it to pass the vintf runtime checks.
2024-07-01 16:01:48 -04:00
Rodney Etienne
4a7fc9dba5 sdm710-common: Use the common device compatibility matrix from QCOM 2024-07-01 16:00:27 -04:00
Rodney Etienne
64a82448c3 sdm710-common: Remove optional="true" hidl(s) from compatibility matrix
- vendor.qti.hardware.wifi.keystore is no longer used:
* We build full Wi-Fi HAL from (AOSP) source.

- vendor.qti.hardware.sigma_miracast is no longer used:
* (It seems) Wi-Fi Display doesn't need this to be working.
2024-07-01 15:58:01 -04:00
Rodney Etienne
7463746653 sdm710-common: parts: Convert to SwitchPreferenceCompat 2024-07-01 15:56:01 -04:00
Rodney Etienne
7d5d880d29 sdm710-common: Update WFD system stack from OOS 14.0.0.81(EX01) 2024-07-01 15:52:41 -04:00
Rodney Etienne
52b6aa88ed sdm710-common: Add missing permissions for WFD
Fix missing WFD permissions file after the WFD update introduced by
commit 1b61c7b ("sdm710-common: Update WFD system stack from T
blobs").

Fixes: 1b61c7b ("sdm710-common: Update WFD system stack from T blobs")
2024-07-01 15:47:02 -04:00
Rodney Etienne
e74d5980f3 sdm710-common: Remove doze ovelay that's not needed anymore. 2024-06-20 19:05:59 -04:00
Rodney Etienne
a67df7fa2c sdm710-common: correct overlay path && update Aux Cameras ID 2024-06-08 15:44:32 -04:00
Sebastiano Barezzi
45c664d099 sdm710-common: sepolicy: Rework and cleanup
Change-Id: I12c97fe8f543b6c466cd6fc38479582ddca37156
2024-06-05 21:20:33 -04:00
Rodney Etienne
14c7370215 sdm710-common: overlay: Update CarrierConfig from phone1
* From Nothing OS 2.0.4
2024-06-05 20:26:03 -04:00
Rodney Etienne
65cae7c383 sdm710-common:overlay: Enable call recording 2024-06-05 20:23:49 -04:00
Rodney Etienne
eb0f84f837 sdm710-common: overlay: Enable volume steps settings 2024-06-05 18:48:16 -04:00
Rodney Etienne
160d3be13f sdm710-common: overlay: Enable double tap to ambient 2024-06-05 18:46:59 -04:00
Rodney Etienne
6b33663708 sdm710-common: overlay: Hide vendor security patch level 2024-06-05 06:29:31 -04:00
Sebastiano Barezzi
509c0d5dde sdm710-common: Revert "Fix charger init trigger event after health AIDL move"
https://github.com/LineageOS/android_system_core/blob/lineage-21.0/init/init.cpp#L1099

This reverts commit 555d5baf6b.

Change-Id: I284f80f364e9057a8373a015f0acaee3ef9e395d
2024-06-04 20:00:37 -04:00
Rodney Etienne
41dd79a101 sdm710-common: props: Disable display refresh rate override
This got enabled by default on U, and it causes apps like
Chrome and Youtube to set the refresh rate to 30FPS when
playing some videos.
2024-06-04 14:23:59 -04:00
Georg Veichtlbauer
ac7cf04563 sdm710-common: powerhint: Add DT2W
Change-Id: I7d0dfe249798864a39afd4f339b692584faaf3ec
2024-05-30 14:31:09 -04:00
Bruno Martins
96c588eb97 sdm710-common: Use common libqti-perfd-client and power-libperfmgr
Change-Id: I22d6b35c72629553817005deaefcae60abc72cfd
2024-05-30 14:26:27 -04:00
Rodney Etienne
d77c5c1f85 sdm710-common: Address some denials 2024-05-30 13:04:26 -04:00
Rodney Etienne
ee740f2ae2 sdm710-common: Initialize for Evolution X 9.x 2024-05-16 20:57:15 -04:00
RODNEY ETIENNE
47a3ddff77 sdm710-common: Initialize for Evolution X 9.x 2024-05-09 16:28:56 -04:00
RODNEY ETIENNE
f133b074d4 sdm710-common: Bring up for Evo X A14 2024-04-21 18:39:54 -04:00
61 changed files with 1883 additions and 617 deletions

View File

@@ -8,7 +8,23 @@ soong_namespace {
imports: [
"hardware/google/interfaces",
"hardware/google/pixel",
"hardware/lineage/interfaces/power-libperfmgr",
"hardware/qcom-caf/common/libqti-perfd-client",
"hardware/xiaomi",
"vendor/qcom/opensource/usb/etc",
],
}
install_symlink {
name: "firmware_WCNSS_qcom_cfg.ini_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini",
symlink_target: "/vendor/etc/wifi/WCNSS_qcom_cfg.ini",
}
install_symlink {
name: "firmware_wlan_mac.bin_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/wlan_mac.bin",
symlink_target: "/mnt/vendor/persist/wlan_mac.bin",
}

View File

@@ -31,70 +31,4 @@ $(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT)
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/
$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM ADSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/adsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp/
$(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM CDSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/cdsp $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/cdsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/
$(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM MPSS folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/mpss $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/
$(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM SLPI folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/slpi $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/slpi $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
ALL_DEFAULT_INSTALLED_MODULES += $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS)
WCNSS_INI_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
$(WCNSS_INI_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS config ini link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/etc/wifi/$(notdir $@) $@
WCNSS_MAC_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin
$(WCNSS_MAC_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS MAC bin link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /mnt/vendor/persist/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(WCNSS_INI_SYMLINK) $(WCNSS_MAC_SYMLINK)
endif

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2022 The LineageOS Project
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -7,7 +7,6 @@
COMMON_PATH := device/xiaomi/sdm710-common
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
BUILD_BROKEN_INCORRECT_PARTITION_IMAGES := true
# APEX
DEXPREOPT_GENERATE_APEX_IMAGE := true
@@ -42,6 +41,9 @@ USE_CUSTOM_AUDIO_POLICY := 1
TARGET_BOOTLOADER_BOARD_NAME := sdm710
TARGET_NO_BOOTLOADER := true
# Camera
TARGET_USES_YCRCB_CAMERA_ENCODE := true
# Display
TARGET_HAS_WIDE_COLOR_DISPLAY := true
TARGET_USES_GRALLOC1 := true
@@ -111,7 +113,7 @@ BOARD_SUPER_PARTITION_CUST_DEVICE_SIZE := 1073741824
BOARD_SUPER_PARTITION_METADATA_DEVICE := system
# Partitions - reserved size
-include vendor/lineage/config/BoardConfigReservedSize.mk
#-include vendor/lineage/config/BoardConfigReservedSize.mk
$(foreach p, $(call to-upper, $(TREBLE_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_PARTITION_RESERVED_SIZE := 30720000))
@@ -120,9 +122,6 @@ BOARD_VENDOR := xiaomi
BOARD_USES_QCOM_HARDWARE := true
TARGET_BOARD_PLATFORM := sdm710
# Power
TARGET_TAP_TO_WAKE_NODE := "/sys/touchpanel/double_tap"
# Properties
TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop
TARGET_SYSTEM_PROP += $(COMMON_PATH)/system.prop
@@ -143,11 +142,12 @@ TARGET_RELEASETOOLS_EXTENSIONS := $(COMMON_PATH)
ENABLE_VENDOR_RIL_SERVICE := true
# Security patch level
VENDOR_SECURITY_PATCH := 2022-05-01
VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
# Sepolicy
TARGET_USES_LOGDUMP_AS_METADATA := true
include device/qcom/sepolicy_vndr/SEPolicy.mk
include device/lineage/sepolicy/libperfmgr/sepolicy.mk
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/public
BOARD_VENDOR_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/vendor
@@ -162,6 +162,12 @@ BOARD_AVB_RECOVERY_ROLLBACK_INDEX := 1
BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1
# VINTF
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
$(COMMON_PATH)/framework_compatibility_matrix.xml \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix_legacy.xml \
hardware/xiaomi/vintf/xiaomi_framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml
DEVICE_MANIFEST_FILE += $(COMMON_PATH)/manifest.xml
ifeq ($(TARGET_HAS_FM),true)
DEVICE_MANIFEST_FILE += $(COMMON_PATH)/manifest_fm.xml
@@ -169,7 +175,7 @@ endif
ifeq ($(TARGET_HAS_NFC),true)
DEVICE_MANIFEST_FILE += $(COMMON_PATH)/manifest_nfc.xml
endif
DEVICE_MATRIX_FILE += $(COMMON_PATH)/compatibility_matrix.xml
DEVICE_MATRIX_FILE += hardware/qcom-caf/common/compatibility_matrix.xml
# VNDK
BOARD_VNDK_VERSION := current

View File

@@ -1,82 +0,0 @@
<compatibility-matrix version="2.0" type="device">
<hal format="hidl" optional="false">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>
<interface>
<name>ISensorManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.allocator</name>
<version>1.0</version>
<interface>
<name>IAllocator</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.manager</name>
<version>1.0</version>
<interface>
<name>IServiceManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.memory</name>
<version>1.0</version>
<interface>
<name>IMapper</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.token</name>
<version>1.0</version>
<interface>
<name>ITokenManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.system.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qccsyshal</name>
<version>1.0</version>
<interface>
<name>IQccsyshal</name>
<instance>qccsyshal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.sigma_miracast</name>
<version>1.0</version>
<interface>
<name>Isigma_miracast</name>
<instance>sigmahal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystoreExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View File

@@ -235,6 +235,16 @@
""
],
"Type": "Property"
},
{
"Name": "DoubleTapToWake",
"Path": "/sys/touchpanel/double_tap",
"Values": [
"0",
"1"
],
"DefaultIndex": 0,
"ResetOnInit": true
}
],
"Actions": [
@@ -609,6 +619,12 @@
"Node": "PMQoSCpuDmaLatency",
"Duration": 2000,
"Value": "2c"
},
{
"PowerHint": "DOUBLE_TAP_TO_WAKE",
"Node": "DoubleTapToWake",
"Duration": 0,
"Value": "1"
}
]
}

14
evolution.dependencies Normal file
View File

@@ -0,0 +1,14 @@
[
{
"repository": "hardware_xiaomi",
"target_path": "hardware/xiaomi"
},
{
"repository": "kernel_xiaomi_sdm710",
"target_path": "kernel/xiaomi/sdm710"
}
{
"repository": "vendor_xiaomi_sdm710",
"target_path": "vendor/xiaomi/sdm710"
}
]

View File

@@ -0,0 +1,11 @@
<compatibility-matrix version="2.0" type="framework">
<hal format="hidl">
<name>vendor.nxp.nxpnfc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>INxpNfc</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View File

@@ -1,17 +0,0 @@
cc_library_shared {
name: "libqti-perfd-client",
proprietary: true,
defaults: ["hidl_defaults"],
srcs: [
"client.c",
],
cflags: [
"-Werror",
"-Wextra",
"-Wall",
],
shared_libs: [
"liblog",
"libutils",
],
}

View File

@@ -1,24 +0,0 @@
#define LOG_TAG "libqti-perfd-client"
#include <stdint.h>
#include <log/log.h>
void perf_get_feedback() {}
void perf_hint() {}
int perf_lock_acq(int handle, int duration, int arg3[], int arg4) {
ALOGI("perf_lock_acq: handle: %d, duration: %d, arg3[0]: %d, arg4: %d",
handle, duration, arg3[0], arg4);
if (handle > 0)
return handle;
return 233;
}
void perf_lock_cmd() {}
int perf_lock_rel(int handle) {
ALOGI("perf_lock_rel: handle: %d", handle);
if (handle > 0)
return handle;
return 233;
}
void perf_lock_use_profile() {}

View File

@@ -1,10 +0,0 @@
[
{
"repository": "android_hardware_xiaomi",
"target_path": "hardware/xiaomi"
},
{
"repository": "android_kernel_xiaomi_sdm710",
"target_path": "kernel/xiaomi/sdm710"
}
]

View File

@@ -1,4 +1,4 @@
<manifest version="2.0" type="device" target-level="4">
<manifest version="2.0" type="device" target-level="5">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
@@ -19,11 +19,6 @@
<transport>hwbinder</transport>
<fqname>@2.4::ICameraProvider/legacy/0</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.configstore</name>
<transport>hwbinder</transport>
<fqname>@1.1::ISurfaceFlingerConfigs/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
@@ -56,16 +51,6 @@
<fqname>@1.0::IOmx/default</fqname>
<fqname>@1.0::IOmxStore/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<fqname>@1.0::IMemtrack/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.power</name>
<transport>hwbinder</transport>
<fqname>@1.0::IPower/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
@@ -109,11 +94,6 @@
<transport>hwbinder</transport>
<fqname>@1.0::IOffloadControl/default</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.bluetooth_audio</name>
<transport>hwbinder</transport>
<fqname>@1.0::IBluetoothAudio/default</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.imscmservice</name>
<transport>hwbinder</transport>

375
media/media_codecs.xml Normal file
View File

@@ -0,0 +1,375 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-2019 The Linux Foundation. All rights reserved.
Not a contribution.
Copyright (C) 2012-2013 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.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT Include EMPTY>
<!ATTLIST Include href CDATA #REQUIRED>
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
<!ELEMENT Decoders (MediaCodec|Include)*>
<!ELEMENT Encoders (MediaCodec|Include)*>
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<!--
670 Non-Secure decoder capabilities
_________________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_________________________________________|
| h264 | 4096 2160 24 100 829440 |
| hevc | 4096 2160 24 100 829440 |
| mpeg4-sw | 1920 1088 30 40 244800 |
| vp8 | 3840 2160 30 100 972000 |
| vp9 | 4096 2160 24 100 829440 |
| vc1 | 1920 1088 30 20 244800 |
| div4/5/6-sw | 1920 1088 30 10 244800 |
| h263-sw | 864 480 30 16 48600 |
| mpeg2 | 1920 1088 30 40 244800 |
|_____________|_________________________________________|
670 Secure decoder capabilities
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 3840 2160 30 35 972000 |
| vp9 | 3840 2160 30 35 972000 |
| hevc | 3840 2160 30 35 972000 |
| mpeg2 | 1920 1088 30 35 244800 |
|__________|_________________________________________|
670 Non-Secure encoder capabilities (Secure not supported)
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 4096 2160 24 100 829440 |
| hevc | 4096 2160 24 100 829440 |
| mpeg4-sw | 1280 720 30 4 108000 |
| vp8 | 3840 2160 30 100 972000 |
| h263-sw | 864 480 30 2 48600 |
|__________|_________________________________________|
-->
<MediaCodecs>
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Encoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-4000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1280x720" value="30" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
<!-- Limit name="performance-point-720x480" value="240" /> -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="972000" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="972000" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="972000" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
</Decoders>
</MediaCodecs>

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
Not a Contribution.
Copyright 2015 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.
u 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.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="238-238" />
<Limit name="measured-frame-rate-720x480" range="123-123" />
<Limit name="measured-frame-rate-1280x720" range="25-55" />
<Limit name="measured-frame-rate-1920x1080" range="18-40" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="226-226" />
<Limit name="measured-frame-rate-720x480" range="121-121" />
<Limit name="measured-frame-rate-1280x720" range="49-49" />
<Limit name="measured-frame-rate-1920x1080" range="16-45" />
<Limit name="measured-frame-rate-3840x2160" range="31-31" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="200-200" />
<Limit name="measured-frame-rate-352x288" range="144-144" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="200-200" />
<Limit name="measured-frame-rate-352x288" range="144-144" />
<Limit name="measured-frame-rate-640x480" range="50-50" />
<Limit name="measured-frame-rate-1280x720" range="30-30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="266-266" />
<Limit name="measured-frame-rate-640x360" range="165-165" />
<Limit name="measured-frame-rate-1280x720" range="49-49" />
<Limit name="measured-frame-rate-1920x1080" range="16-40" />
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="248-248" />
<Limit name="measured-frame-rate-720x480" range="100-100" />
<Limit name="measured-frame-rate-1280x720" range="56-56" />
<Limit name="measured-frame-rate-1920x1080" range="30-30" />
</MediaCodec>
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="200-200" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="148-328" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="28-30" />
<Limit name="measured-frame-rate-720x480" range="8-39" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="155-155" />
<Limit name="measured-frame-rate-640x360" range="144-147" />
<Limit name="measured-frame-rate-1280x720" range="17-24" />
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="651-656" />
<Limit name="measured-frame-rate-720x480" range="450-450" />
<Limit name="measured-frame-rate-1280x720" range="351-352" />
<Limit name="measured-frame-rate-1920x1088" range="161-162" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="675-736" />
<Limit name="measured-frame-rate-640x360" range="280-320" />
<Limit name="measured-frame-rate-720x480" range="440-450" />
<Limit name="measured-frame-rate-1280x720" range="310-330" />
<Limit name="measured-frame-rate-1920x1080" range="170-190" />
<Limit name="measured-frame-rate-3840x2160" range="45-50" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="200-400" />
<Limit name="measured-frame-rate-352x288" range="400-490" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="625-688" />
<Limit name="measured-frame-rate-352x288" range="144-144" />
<Limit name="measured-frame-rate-480x360" range="346-423" />
<Limit name="measured-frame-rate-640x480" range="50-50" />
<Limit name="measured-frame-rate-1280x720" range="50-110" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="545-545" />
<Limit name="measured-frame-rate-320x240" range="337-337" />
<Limit name="measured-frame-rate-640x360" range="337-337" />
<Limit name="measured-frame-rate-1280x720" range="337-337" />
<Limit name="measured-frame-rate-1920x1080" range="248-248" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="377-377" />
<Limit name="measured-frame-rate-640x360" range="323-323" />
<Limit name="measured-frame-rate-1280x720" range="262-262" />
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
<Limit name="measured-frame-rate-3840x2160" range="51-51" />
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="122-185" />
<Limit name="measured-frame-rate-720x480" range="68-68" />
<Limit name="measured-frame-rate-1280x720" range="32-32" />
<Limit name="measured-frame-rate-1920x1080" range="6-10" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="896-955" />
<Limit name="measured-frame-rate-352x288" range="653-680" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="177-264" />
<Limit name="measured-frame-rate-640x360" range="89-89" />
<Limit name="measured-frame-rate-720x480" range="73-88" />
<Limit name="measured-frame-rate-1280x720" range="32-37" />
<Limit name="measured-frame-rate-1920x1080" range="21-21" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" update="true">
<Type name="video/mp4v-es">
<Limit name="measured-frame-rate-176x144" range="872-971" />
</Type>
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="330-381" />
<Limit name="measured-frame-rate-640x360" range="139-185" />
<Limit name="measured-frame-rate-1280x720" range="22-38" />
<Limit name="measured-frame-rate-1920x1080" range="9-18" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="200-230" />
<Limit name="measured-frame-rate-640x360" range="81-130" />
<Limit name="measured-frame-rate-1280x720" range="32-40" />
<Limit name="measured-frame-rate-1920x1080" range="19-23" />
</MediaCodec>
</Decoders>
</MediaCodecs>

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
Not a Contribution.
Copyright 2015 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.
u 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.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="238-238" />
<Limit name="measured-frame-rate-720x480" range="123-123" />
<Limit name="measured-frame-rate-1280x720" range="50-50" />
<Limit name="measured-frame-rate-1920x1080" range="16-40" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="226-226" />
<Limit name="measured-frame-rate-720x480" range="121-121" />
<Limit name="measured-frame-rate-1280x720" range="49-49" />
<Limit name="measured-frame-rate-1920x1080" range="16-45" />
<Limit name="measured-frame-rate-3840x2160" range="31-31" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="303-303" />
<Limit name="measured-frame-rate-352x288" range="259-259" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="200-200" />
<Limit name="measured-frame-rate-352x288" range="144-144" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="299-299" />
<Limit name="measured-frame-rate-352x288" range="245-245" />
<Limit name="measured-frame-rate-640x480" range="148-148" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="200-200" />
<Limit name="measured-frame-rate-352x288" range="144-144" />
<Limit name="measured-frame-rate-640x480" range="50-50" />
<Limit name="measured-frame-rate-1280x720" range="30-30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="266-266" />
<Limit name="measured-frame-rate-640x360" range="165-165" />
<Limit name="measured-frame-rate-1280x720" range="49-49" />
<Limit name="measured-frame-rate-1920x1080" range="16-40" />
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="248-248" />
<Limit name="measured-frame-rate-720x480" range="100-100" />
<Limit name="measured-frame-rate-1280x720" range="56-56" />
<Limit name="measured-frame-rate-1920x1080" range="30-30" />
</MediaCodec>
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="200-200" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="180-180" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="28-30" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="155-155" />
<Limit name="measured-frame-rate-640x360" range="144-147" />
<Limit name="measured-frame-rate-1280x720" range="17-24" />
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="651-656" />
<Limit name="measured-frame-rate-720x480" range="450-450" />
<Limit name="measured-frame-rate-1280x720" range="351-352" />
<Limit name="measured-frame-rate-1920x1088" range="161-162" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="788-757" />
<Limit name="measured-frame-rate-720x480" range="484-472" />
<Limit name="measured-frame-rate-640x480" range="555-556" />
<Limit name="measured-frame-rate-1280x720" range="206-288" />
<Limit name="measured-frame-rate-1920x1080" range="181-182" />
<Limit name="measured-frame-rate-3840x2160" range="52-52" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="356-356" />
<Limit name="measured-frame-rate-352x288" range="292-292" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="200-400" />
<Limit name="measured-frame-rate-352x288" range="400-490" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="146-146" />
<Limit name="measured-frame-rate-480x360" range="145-145" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="625-688" />
<Limit name="measured-frame-rate-352x288" range="144-144" />
<Limit name="measured-frame-rate-480x360" range="346-423" />
<Limit name="measured-frame-rate-640x480" range="50-50" />
<Limit name="measured-frame-rate-1280x720" range="74-84" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="337-337" />
<Limit name="measured-frame-rate-640x360" range="337-337" />
<Limit name="measured-frame-rate-1280x720" range="337-337" />
<Limit name="measured-frame-rate-1920x1080" range="248-248" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="377-377" />
<Limit name="measured-frame-rate-640x360" range="323-323" />
<Limit name="measured-frame-rate-1280x720" range="262-262" />
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
<Limit name="measured-frame-rate-3840x2160" range="51-51" />
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="122-122" />
<Limit name="measured-frame-rate-720x480" range="68-68" />
<Limit name="measured-frame-rate-1280x720" range="32-32" />
<Limit name="measured-frame-rate-1920x1080" range="6-10" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="896-955" />
<Limit name="measured-frame-rate-352x288" range="653-680" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="177-264" />
<Limit name="measured-frame-rate-640x360" range="89-89" />
<Limit name="measured-frame-rate-720x480" range="73-73" />
<Limit name="measured-frame-rate-1280x720" range="32-32" />
<Limit name="measured-frame-rate-1920x1080" range="21-21" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" update="true">
<Type name="video/mp4v-es">
<Limit name="measured-frame-rate-176x144" range="872-971" />
</Type>
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="330-381" />
<Limit name="measured-frame-rate-640x360" range="139-185" />
<Limit name="measured-frame-rate-1280x720" range="22-38" />
<Limit name="measured-frame-rate-1920x1080" range="9-18" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="200-230" />
<Limit name="measured-frame-rate-640x360" range="81-90" />
<Limit name="measured-frame-rate-1280x720" range="32-40" />
<Limit name="measured-frame-rate-1920x1080" range="19-23" />
</MediaCodec>
</Decoders>
</MediaCodecs>

View File

@@ -0,0 +1,388 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-2018, 2020 The Linux Foundation. All rights reserved.
Not a contribution.
Copyright (C) 2012-2013 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.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT Include EMPTY>
<!ATTLIST Include href CDATA #REQUIRED>
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
<!ELEMENT Decoders (MediaCodec|Include)*>
<!ELEMENT Encoders (MediaCodec|Include)*>
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<!--
670 Non-Secure decoder capabilities
_________________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_________________________________________|
| h264 | 4096 2160 24 100 829440 |
| hevc | 4096 2160 24 100 829440 |
| mpeg4-sw | 1920 1088 30 40 244800 |
| vp8 | 3840 2160 30 100 972000 |
| vp9 | 4096 2160 24 100 829440 |
| vc1 | 1920 1088 30 20 244800 |
| div4/5/6-sw | 1920 1088 30 10 244800 |
| h263-sw | 864 480 30 16 48600 |
| mpeg2 | 1920 1088 30 40 244800 |
|_____________|_________________________________________|
670 Secure decoder capabilities
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 3840 2160 30 35 972000 |
| vp9 | 3840 2160 30 35 972000 |
| hevc | 3840 2160 30 35 972000 |
| mpeg2 | 1920 1088 30 35 244800 |
|__________|_________________________________________|
670 Non-Secure encoder capabilities (Secure not supported)
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 4096 2160 24 100 829440 |
| hevc | 4096 2160 24 100 829440 |
| mpeg4-sw | 1280 720 30 4 108000 |
| vp8 | 3840 2160 30 100 972000 |
| h263-sw | 864 480 30 2 48600 |
|__________|_________________________________________|
-->
<MediaCodecs>
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Encoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-4000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1280x720" value="30" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
<!-- Limit name="performance-point-720x480" value="240" /> -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="972000" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="972000" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="972000" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.vc1sw" type="video/x-ms-wmv" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
</Decoders>
</MediaCodecs>

View File

@@ -0,0 +1,395 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-2018, 2020 The Linux Foundation. All rights reserved.
Not a contribution.
Copyright (C) 2012-2013 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.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT Include EMPTY>
<!ATTLIST Include href CDATA #REQUIRED>
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
<!ELEMENT Decoders (MediaCodec|Include)*>
<!ELEMENT Encoders (MediaCodec|Include)*>
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<!--
845 Non-Secure decoder capabilities
_________________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_________________________________________|
| h264 | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| hevc | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| mpeg4-sw | 1920 1088 30 40 244800 |
| vp8 | 4096 2160 30 120 1036800 |
| | (4096) (2304) (24) (120) |
| vp9 | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| vc1 | 1920 1088 30 20 244800 |
| div4/5/6-sw | 1920 1088 30 10 244800 |
| h263-sw | 864 480 30 16 48600 |
| mpeg2 | 1920 1088 30 40 244800 |
|_____________|_________________________________________|
845 Secure decoder capabilities
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 4096 2160 60 40 2073600 |
| | (4096) (2304) (30) (40) |
| vp9 | 4096 2160 60 40 2073600 |
| | (4096) (2304) (30) (40) |
| hevc | 4096 2160 60 40 2073600 |
| | (4096) (2304) (30) (40) |
| mpeg2 | 1920 1088 30 40 244800 |
|__________|_________________________________________|
845 Non-Secure encoder capabilities (Secure not supported)
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| hevc | 4096 2160 60 120 2073600 |
| | (4096) (2304) (30) (120) |
| mpeg4-sw | 1280 720 30 4 108000 |
| vp8 | 4096 2160 30 120 1036800 |
| | (4096) (2304) (24) (120) |
| h263-sw | 864 480 30 2 48600 |
|__________|_________________________________________|
-->
<MediaCodecs>
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Encoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="1036800" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="28" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="32x32" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-4000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1280x720" value="30" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="1036800" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="28" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-1280x720" value="240" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="12" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="4096x2304" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="56" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="16x16" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.vc1sw" type="video/x-ms-wmv" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<!-- Audio Software -->
</Decoders>
</MediaCodecs>

View File

@@ -46,13 +46,4 @@
<!-- Whether device has screen with higher aspect ratio -->
<bool name="config_haveHigherAspectRatioScreen">true</bool>
<!-- The list of package IDs that are allowed to use aux cameras.
NOTE: If this list is empty then all apps will be able to use aux cameras. -->
<string-array name="config_cameraAuxPackageAllowList" translatable="false">
<item>org.codeaurora.snapcam</item>
<item>com.android.camera</item>
<item>org.lineageos.aperture</item>
<item>org.lineageos.aperture.dev</item>
</string-array>
</resources>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2023 Evolution X
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Whether to enable Lineage Fast Charge Preference -->
<bool name="config_lineageFastChargeSupported">true</bool>
<!-- Whether device supports showing battery charge cycles -->
<bool name="config_showBatteryChargeCycles">false</bool>
<!-- Whether to show vendor security patch level -->
<bool name="config_show_vendor_patch_level" translatable="false">false</bool>
<!-- Whether to show double tap ambient settings -->
<bool name="config_supports_double_tap_ambient" translatable="false">true</bool>
<!-- Whether to show volume steps settings -->
<bool name="config_supports_volume_steps" translatable="false">true</bool>
</resources>

View File

@@ -24,9 +24,6 @@
<!-- The restoring is handled by modem if it is true-->
<bool translatable="false" name="skip_restoring_network_selection">true</bool>
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<bool name="config_cellBroadcastAppLinks">true</bool>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->

View File

@@ -0,0 +1,7 @@
[
"/dev/video0",
"/dev/video1",
"/dev/video2",
"/dev/video32",
"/dev/video33"
]

View File

@@ -28,7 +28,7 @@
android:key="doze_enable"
android:title="@string/ambient_display_enable_title" />
<SwitchPreference
<SwitchPreferenceCompat
android:key="always_on_display"
android:disableDependentsState="true"
android:title="@string/ambient_display_always_on_title"
@@ -39,7 +39,7 @@
android:key="pickup_sensor"
android:title="@string/pickup_sensor_title">
<SwitchPreference
<SwitchPreferenceCompat
android:key="gesture_pick_up"
android:defaultValue="false"
android:icon="@drawable/ic_pickup"
@@ -52,14 +52,14 @@
android:key="proximity_sensor"
android:title="@string/proximity_sensor_title">
<SwitchPreference
<SwitchPreferenceCompat
android:key="gesture_hand_wave"
android:defaultValue="false"
android:icon="@drawable/ic_hand"
android:title="@string/hand_wave_gesture_title"
android:summary="@string/hand_wave_gesture_summary" />
<SwitchPreference
<SwitchPreferenceCompat
android:key="gesture_pocket"
android:defaultValue="false"
android:icon="@drawable/ic_pocket"

View File

@@ -31,7 +31,7 @@ import android.widget.CompoundButton;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreference;
import androidx.preference.SwitchPreferenceCompat;
import com.android.settingslib.widget.MainSwitchPreference;
@@ -42,11 +42,11 @@ public class DozeSettingsFragment extends PreferenceFragment
private MainSwitchPreference mSwitchBar;
private SwitchPreference mAlwaysOnDisplayPreference;
private SwitchPreferenceCompat mAlwaysOnDisplayPreference;
private SwitchPreference mPickUpPreference;
private SwitchPreference mHandwavePreference;
private SwitchPreference mPocketPreference;
private SwitchPreferenceCompat mPickUpPreference;
private SwitchPreferenceCompat mHandwavePreference;
private SwitchPreferenceCompat mPocketPreference;
private Handler mHandler = new Handler();
@@ -66,7 +66,7 @@ public class DozeSettingsFragment extends PreferenceFragment
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.setChecked(dozeEnabled);
mAlwaysOnDisplayPreference = (SwitchPreference) findPreference(DozeUtils.ALWAYS_ON_DISPLAY);
mAlwaysOnDisplayPreference = (SwitchPreferenceCompat) findPreference(DozeUtils.ALWAYS_ON_DISPLAY);
mAlwaysOnDisplayPreference.setEnabled(dozeEnabled);
mAlwaysOnDisplayPreference.setChecked(DozeUtils.isAlwaysOnEnabled(getActivity()));
mAlwaysOnDisplayPreference.setOnPreferenceChangeListener(this);
@@ -76,15 +76,15 @@ public class DozeSettingsFragment extends PreferenceFragment
PreferenceCategory proximitySensorCategory = (PreferenceCategory) getPreferenceScreen().
findPreference(DozeUtils.CATEG_PROX_SENSOR);
mPickUpPreference = (SwitchPreference) findPreference(DozeUtils.GESTURE_PICK_UP_KEY);
mPickUpPreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_PICK_UP_KEY);
mPickUpPreference.setEnabled(dozeEnabled);
mPickUpPreference.setOnPreferenceChangeListener(this);
mHandwavePreference = (SwitchPreference) findPreference(DozeUtils.GESTURE_HAND_WAVE_KEY);
mHandwavePreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_HAND_WAVE_KEY);
mHandwavePreference.setEnabled(dozeEnabled);
mHandwavePreference.setOnPreferenceChangeListener(this);
mPocketPreference = (SwitchPreference) findPreference(DozeUtils.GESTURE_POCKET_KEY);
mPocketPreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_POCKET_KEY);
mPocketPreference.setEnabled(dozeEnabled);
mPocketPreference.setOnPreferenceChangeListener(this);

View File

@@ -463,12 +463,6 @@ vendor/lib64/libmmosal.so
# Media configs
odm/etc/media_profiles_V1_0.xml
vendor/etc/media_codecs.xml
vendor/etc/media_codecs_performance.xml
vendor/etc/media_codecs_performance_v1.xml
vendor/etc/media_codecs_vendor.xml
vendor/etc/media_codecs_vendor_audio.xml
vendor/etc/media_codecs_vendor_v1.xml
vendor/etc/media_profiles.xml
vendor/etc/media_profiles_vendor.xml
vendor/etc/system_properties.xml
@@ -768,53 +762,54 @@ vendor/bin/nv_mac
vendor/etc/wifi/aoa_cldb_falcon.bin
vendor/etc/wifi/aoa_cldb_swl14.bin
# WiFi Display (system) - from lemonadep - TP1A.220624.003
-framework/WfdCommon.jar|323859204993cb8bf89821baeb08a6a85e750c65
system_ext/bin/wfdservice|fc204600629fbf60c4c6c187f0943d21643fdb4a
# WiFi Display (system) - from KB2001 14.0.0.81(EX01)
system/framework/WfdCommon.jar|a661c494d064b79a3f71579592411fada1ea232f
system_ext/bin/wfdservice|400d123df78c1ed2e9643ff3ddf5ee5748f954fe
system_ext/etc/init/wfdservice.rc|907def8565d8f91f531ca7dfad880af05d540b0c
system_ext/etc/seccomp_policy/wfdservice.policy|37994de64d6bd127898bd556cd614db459fe07ec
system_ext/etc/permissions/wfd-system-ext-privapp-permissions-qti.xml|10dcd4e58f0652d800d48ae5b76e4fab43fda214
system_ext/etc/seccomp_policy/wfdservice.policy|5b3592c965f16b2d55ac89d56d8d3c49a6b5800b
system_ext/etc/wfdconfigsink.xml|cb78df66948314a75080a4161321fb3111a0785a
system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so|76890a318bd32d8e64c28b708937ec8ca1e3d2bb
system_ext/lib/libmmosal.so|c8c69eae3f2ba902cb29b522ddbfbe839f066c58
system_ext/lib/libmmparser_lite.so|b41bd63f602222e0a3c7034485a4974e92985213
system_ext/lib/libmmrtpdecoder.so|dd7868f19bf168243d514239bf103048d7095be3
system_ext/lib/libmmrtpencoder.so|f4f83609321f103be884f6cde3aa05b49cf42b40
system_ext/lib/libwfdavenhancements.so|c041fc8675f34985e180e13e23cc9c4a59c7d8aa
system_ext/lib/libwfdclient.so|feead7bcaf6a54b60a511f62fe2822a5ebf3fbee
system_ext/lib/libwfdcommonutils.so|f0dfed5593369d2fc5ff2f5cb35458d2118bf7b0
system_ext/lib/libwfdconfigutils.so|83b3b30950638164ddcade538969e84be2c418db
system_ext/lib/libwfddisplayconfig.so|ec3383d6c03a21985f4442eae6c7e935867d10c8
system_ext/lib/libwfdmminterface.so|610a9dadc4f577a655b9fdfee2411a44b0e39a7d
system_ext/lib/libwfdmmsink.so|a045b3dd2b4cad52684e579af2d72554c178e9f6
system_ext/lib/libwfdmmsrc_system.so|7c610627c1ad1389892d47ed84d3efcde16b0cda
system_ext/lib/libwfdrtsp.so|3ace8ddfd6dc3f8aea2d8f489431599e6467de1c
system_ext/lib/libwfdservice.so|38ca6ba591d5bb2f475c82660e2d6e63faec9d9c
system_ext/lib/libwfdsinksm.so|68d32947455c468d12e52a57cd71a2ba50d7fcd2
system_ext/lib/libwfduibcinterface.so|7ac5b7fd7ff0b469629548549cf3a907068be174
system_ext/lib/libwfduibcsink.so|5630028a8152379a1037d81224b8c031209b93ce
system_ext/lib/libwfduibcsinkinterface.so|25e3cd7b8fd106c401597e9d71f47006ca06b31f
system_ext/lib/libwfduibcsrc.so|09821648adb3275b2c2619af7581f35a47643ff5
system_ext/lib/libwfduibcsrcinterface.so|0c98741c0d65b27acf73a8b1a742e433fbeb86f4
system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so|22c0738800ca315c1283f5f69438611b92f1a938
system_ext/lib64/libmmosal.so|9ce1b8f9ba41f7dafe149ead639d9325cc9d300b
system_ext/lib64/libmmparser_lite.so|8515e1d267cb968af4a08c2195be32678286e483
system_ext/lib64/libmmrtpdecoder.so|9f647eb3812478fbd7e23c0580968117c85d6a73
system_ext/lib64/libmmrtpencoder.so|49dc6d9092b70780c2ab60bfb18e7937b8c1f931
system_ext/lib64/libwfdclient.so|8a020cc50c05f054135bcf139bc9427c72cdcbae
system_ext/lib64/libwfdcommonutils.so|014637a533494400606e9473fb30725082f60f33
system_ext/lib64/libwfdconfigutils.so|e39cb0730e38ad2ad53bd0882200ad682e96eb1c
system_ext/lib64/libwfddisplayconfig.so|59a5cb17ffe46900c0ae26a8937a5ddab80fe283
system_ext/lib64/libwfdmminterface.so|b1e33104bc2231c7f75132757a28c918ee4b3889
system_ext/lib64/libwfdmmsink.so|0db18686f52492b89d9feffffd0494371f6a8c18
system_ext/lib64/libwfdnative.so|f8a1328641167d037f097d6595079997de0a1662
system_ext/lib64/libwfdrtsp.so|1957934068e8befa237106fbc584457e86ef07da
system_ext/lib64/libwfdsinksm.so|bd2369a1203a3b24115605ec1d27d288b4b62718
system_ext/lib64/libwfduibcinterface.so|d5a578a2159c4681cb9d159b93c1c39b8f3091f7
system_ext/lib64/libwfduibcsink.so|d4cc3afb86003f0e26134f82b503b6deac30b6b5
system_ext/lib64/libwfduibcsinkinterface.so|a875792e5242870cd9a069cb367a6b5031fce2f0
system_ext/lib64/libwfduibcsrc.so|1529ca18c3484b8a3f3d95e9198def564e86fda3
system_ext/lib64/libwfduibcsrcinterface.so|69400030817aa8f6994a525b027bb3dd7cabd0d4
-system_ext/priv-app/WfdService/WfdService.apk|1abb2c2c249d2e99aa6bbdb972736e52ba594e56
system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so|cb88bc73bf9f44d7da000a41d38b309ffdf71370
system_ext/lib/libmmosal.so|e806f8040b4e59c6e08e437734a2176090a94ae3
system_ext/lib/libmmparser_lite.so|873d818fbfa0ce01a1f9cd951c1fba32d4159735
system_ext/lib/libmmrtpdecoder.so|4fc76315f11ff5fe416f36b66c9422ef05eae182
system_ext/lib/libmmrtpencoder.so|0fa2096eec29eec395f6bd88d7d1049a127e090c
system_ext/lib/libwfdavenhancements.so|581db496334d2adb76e6c6af67620f49ca24eabd
system_ext/lib/libwfdclient.so|a9639d9f269880700bac6fc06e8302702fb0ab32
system_ext/lib/libwfdcommonutils.so|b738182e77f3e7faf72460f09ebdfca7de5e0c23
system_ext/lib/libwfdconfigutils.so|df70b2da2b8aff916a1c2f6e7365d87cf1c4ffdf
system_ext/lib/libwfddisplayconfig.so|f46fe63fb3d58c143dc92741a962167af3d8b928
system_ext/lib/libwfdmminterface.so|5844114d7cc823090a70fe4f44cbda0ddf585ebd
system_ext/lib/libwfdmmsink.so|23fb5c836fc06865b229c30b46998e41c0624dac
system_ext/lib/libwfdmmsrc_system.so|0adfc69a5560158f3a6803ba720acc795d6d05dc
system_ext/lib/libwfdrtsp.so|afd69963c2bd59bdb3ff23e01710c61ed90c5d87
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2
system_ext/lib/libwfdsinksm.so|875171cc6ae534dd941eec1c87b78d5961e19c06
system_ext/lib/libwfduibcinterface.so|e90fa4920b010bd6ef2bd78c2d2644cbd0fcbffa
system_ext/lib/libwfduibcsink.so|91af548471c395a958e6155dd9be19cccbe482d3
system_ext/lib/libwfduibcsinkinterface.so|bc0e7dca28d1e5cbc6caf5bd5378f3e6db3b460c
system_ext/lib/libwfduibcsrc.so|a0b1c73015c449468db0d2776fdfcc56dfeee53b
system_ext/lib/libwfduibcsrcinterface.so|2e24ec6a075407664488b4214eef35cb2ca845f4
system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so|45a0a8cd9f1aa5cbe69b113192d42bc42e32e9c3
system_ext/lib64/libmmosal.so|8488b27e6a9cda05c68181e8bf20afa7ba345222
system_ext/lib64/libmmparser_lite.so|afd7b441e1bce732c14f5f8f49821d43bb2ee791
system_ext/lib64/libmmrtpdecoder.so|0da526d51135ea58236ab6bcc2d1b7484931df24
system_ext/lib64/libmmrtpencoder.so|fafe00d1ed3d691c6d2c2d963144218764cad5ae
system_ext/lib64/libwfdclient.so|0070b1e88cee6ebaf17dcb02c2706232cc087071
system_ext/lib64/libwfdcommonutils.so|14b3bd86703f2aca0abb1232d2304e626c1af644
system_ext/lib64/libwfdconfigutils.so|3b2d91fe7efefd81a0b5cdff59b9918c063fa7a9
system_ext/lib64/libwfddisplayconfig.so|5fd7bf7abaedfe890442f88183c49755b25c39aa
system_ext/lib64/libwfdmminterface.so|3f16acefbe87741a5841c1c70cf74ff917299c4c
system_ext/lib64/libwfdmmsink.so|8150b750357b606475521b491f78d566673f9888
system_ext/lib64/libwfdnative.so|6d6dad5e631bc4d63463f608c47f3f9e5493944f
system_ext/lib64/libwfdrtsp.so|8181e44d7c1f722218fabd8fe3bf788454a3f586
system_ext/lib64/libwfdsinksm.so|c4d68ecbe0accd24296c18444e5a82b6a24be8d8
system_ext/lib64/libwfduibcinterface.so|dca32fe063bdba7ce3b131b16cf112b793ae03ad
system_ext/lib64/libwfduibcsink.so|63ea93b1a6aec75a294baf50007270807a819e21
system_ext/lib64/libwfduibcsinkinterface.so|39c123bd9a4d7a8fa317f8ed4d86972dcfab0423
system_ext/lib64/libwfduibcsrc.so|5557f3bd58c37b7e3b28e13f2f86d55930b14ab6
system_ext/lib64/libwfduibcsrcinterface.so|77cead9bf7b60384fe1e11dc2b25bd99af0b4608
system_ext/priv-app/WfdService/WfdService.apk|7191da7d336f6018ee292af4e69167677b9f5bd1
# WiFi Display (vendor)
vendor/bin/wfdhdcphalservice

View File

@@ -573,7 +573,7 @@ service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /system/vendor/etc/m
user root
group root
on property:init.svc.vendor.charger=running
on charger
setprop persist.sys.usb.config mass_storage
start qcom-post-boot

View File

@@ -69,9 +69,6 @@ on fs
chmod 0644 /proc/tp_selftest
on late-fs
# Wait for keymaster
exec_start wait_for_keymaster
# Mount RW partitions which need run fsck
mount_all /vendor/etc/fstab.qcom --late
@@ -157,7 +154,6 @@ on boot
setprop vendor.usb.rmnet.inst.name "rmnet"
setprop vendor.usb.dpl.inst.name "dpl"
setprop vendor.usb.qdss.inst.name "qdss"
setprop sys.usb.configfs 1
#pd-mapper
service vendor.pd_mapper /vendor/bin/pd-mapper
@@ -192,9 +188,8 @@ on boot
chmod 0666 /sys/class/touch/touch_dev/palm_sensor
chown system system /sys/class/touch/tp_dev/fod_status
on property:init.svc.vendor.charger=running
on charger
start vendor.power_off_alarm
setprop sys.usb.configfs 1
service thermal-engine /system/vendor/bin/thermal-engine -T
class main

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2022-2023 The LineageOS Project
# Copyright (C) 2022-2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -7,6 +7,9 @@
# Setup dalvik vm configs
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
# Add common definitions for Qualcomm
$(call inherit-product, hardware/qcom-caf/common/common.mk)
# Permissions
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
@@ -110,9 +113,13 @@ PRODUCT_PACKAGES += \
vendor.qti.hardware.camera.device@1.0.vendor \
vendor.qti.hardware.camera.postproc@1.0.vendor
# Configstore
PRODUCT_PACKAGES += \
disable_configstore
# Consumer IR
PRODUCT_PACKAGES += \
android.hardware.ir@1.0-service.xiaomi
android.hardware.ir-service.xiaomi
# Device-specific settings
PRODUCT_PACKAGES += \
@@ -129,9 +136,7 @@ PRODUCT_PACKAGES += \
hwcomposer.sdm710
PRODUCT_PACKAGES += \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
memtrack.sdm710
vendor.qti.hardware.memtrack-service
PRODUCT_PACKAGES += \
libdisplayconfig.qti \
@@ -183,7 +188,8 @@ PRODUCT_PACKAGES += \
# GNSS
PRODUCT_PACKAGES += \
android.hardware.gnss@1.1.vendor \
android.hardware.gnss@2.1.vendor
android.hardware.gnss@2.1.vendor \
libsqlite.vendor
# Health
PRODUCT_PACKAGES += \
@@ -212,11 +218,18 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/keylayout/sdm670-mtp-snd-card_Button_Jack.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/sdm670-mtp-snd-card_Button_Jack.kl
# ION
PRODUCT_PACKAGES += \
libion.vendor
# IPACM
PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml
# Kernel
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true
# Keymaster
PRODUCT_PACKAGES += \
android.hardware.keymaster@4.1.vendor
@@ -241,13 +254,12 @@ PRODUCT_PACKAGES += \
# Media configs
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*,$(LOCAL_PATH)/media/,$(TARGET_COPY_OUT_VENDOR)/etc)
# Mlipay
PRODUCT_PACKAGES += \
@@ -314,13 +326,10 @@ PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += $(LOCAL_PATH)/overlay/packages/apps/Car
# Partitions
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Perf
PRODUCT_PACKAGES += \
libqti-perfd-client
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service.xiaomi-libperfmgr
android.hardware.power-service.lineage-libperfmgr \
libqti-perfd-client
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
@@ -389,6 +398,8 @@ PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
hardware/google/interfaces \
hardware/google/pixel \
hardware/lineage/interfaces/power-libperfmgr \
hardware/qcom-caf/common/libqti-perfd-client \
hardware/xiaomi \
vendor/qcom/opensource/usb/etc
@@ -412,11 +423,13 @@ PRODUCT_PACKAGES += \
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-service.dual_role_usb
android.hardware.usb@1.3-service.dual_role_usb \
android.hardware.usb.gadget@1.2-service-qti
PRODUCT_PACKAGES += \
init.qcom.usb.rc \
init.qcom.usb.sh
init.qcom.usb.sh \
usb_compositions.conf
# Vibrator
PRODUCT_PACKAGES += \
@@ -438,6 +451,10 @@ PRODUCT_PACKAGES += \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_PACKAGES += \
firmware_WCNSS_qcom_cfg.ini_symlink \
firmware_wlan_mac.bin_symlink
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \
$(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
@@ -445,8 +462,11 @@ PRODUCT_COPY_FILES += \
# Wi-Fi Display
PRODUCT_PACKAGES += \
android.media.audio.common.types-V2-cpp \
libnl \
libwfdaac_vendor
libpng.vendor \
libwfdaac_vendor \
vendor.qti.hardware.display.config-V5-ndk
PRODUCT_BOOT_JARS += \
WfdCommon

View File

@@ -1 +1,2 @@
# XiaomiParts
user=system seinfo=platform name=org.lineageos.settings domain=devicesettings_app type=system_app_data_file

View File

@@ -1 +1,2 @@
# Allow IFAAService access to Mlipay HAL
hal_client_domain(system_app, hal_mlipay)

1
sepolicy/vendor/adsprpcd.te vendored Normal file
View File

@@ -0,0 +1 @@
r_dir_file(adsprpcd, sysfs_graphics)

View File

@@ -1,2 +1,3 @@
get_prop({ appdomain -isolated_app_all }, vendor_fp_prop)
# Allow apps to read mlipay and IFAA props
get_prop({ appdomain -isolated_app_all }, vendor_fingerprint_prop)
get_prop({ appdomain -isolated_app_all }, vendor_tee_listener_prop)

View File

@@ -4,6 +4,7 @@ type gps_device, dev_type;
type lirc_device, dev_type;
typeattribute system_block_device super_block_device_type;
type ultrasound_device, dev_type;
# Treat non-super block devices as super block devices for retrofit
typeattribute system_block_device super_block_device_type;

View File

@@ -1,21 +1,7 @@
type audio_socket, file_type;
type debugfs_sched_features, debugfs_type, fs_type;
type debugfs_wlan, debugfs_type, fs_type;
type fingerprint_data_file, data_file_type, core_data_file_type, file_type;
type gps_data_file, data_file_type, file_type;
type gps_socket, file_type;
type persist_audio_file, file_type, vendor_persist_type;
type persist_camera_file, file_type, vendor_persist_type;
type persist_fingerprint_file, file_type, vendor_persist_type;
type proc_sysctl_autogroup, proc_type, fs_type;
type proc_sysctl_schedboost, proc_type, fs_type;
@@ -26,12 +12,18 @@ type sysfs_fingerprint, sysfs_type, fs_type;
type sysfs_gps, sysfs_type, fs_type;
type sysfs_msm_subsys, sysfs_type, fs_type;
type sysfs_rpm, sysfs_type, fs_type;
type sysfs_system_sleep_stats, sysfs_type, fs_type;
type sysfs_touchpanel, sysfs_type, fs_type;
type thermal_data_file, data_file_type, file_type;
type vendor_audio_socket, file_type;
type vendor_gps_data_file, data_file_type, file_type;
type vendor_gps_socket, file_type;
type vendor_persist_audio_file, file_type, vendor_persist_type;
type vendor_persist_camera_file, file_type, vendor_persist_type;
type vendor_persist_fingerprint_file, file_type, vendor_persist_type;
type vendor_thermal_data_file, data_file_type, file_type;

View File

@@ -1,96 +1,87 @@
# Audio
/dev/socket/audio_hw_socket u:object_r:audio_socket:s0
/mnt/vendor/persist/audio(/.*)? u:object_r:persist_audio_file:s0
/dev/socket/audio_hw_socket u:object_r:vendor_audio_socket:s0
/mnt/vendor/persist/audio(/.*)? u:object_r:vendor_persist_audio_file:s0
# Block devices
/dev/block/platform/soc/1d84000.ufshc/by-name/cust u:object_r:system_block_device:s0
/dev/block/platform/soc/1d84000.ufshc/by-name/vendor u:object_r:system_block_device:s0
/dev/block/platform/soc/7c4000.sdhci/by-name/cust u:object_r:system_block_device:s0
/dev/block/platform/soc/7c4000.sdhci/by-name/vendor u:object_r:system_block_device:s0
/dev/block/platform/soc/1d84000.ufshc/by-name/cust u:object_r:system_block_device:s0
/dev/block/platform/soc/1d84000.ufshc/by-name/vendor u:object_r:system_block_device:s0
/dev/block/platform/soc/7c4000.sdhci/by-name/cust u:object_r:system_block_device:s0
/dev/block/platform/soc/7c4000.sdhci/by-name/vendor u:object_r:system_block_device:s0
# Camera
/mnt/vendor/persist/camera(/.*)? u:object_r:persist_camera_file:s0
/vendor/bin/remosaic_daemon u:object_r:remosaic_daemon_exec:s0
/vendor/lib(64)?/libal(CFR|hLDC)\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_.*\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgoengine\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmibokeh_712\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmpbase\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libVD.*\.so u:object_r:same_process_hal_file:s0
/mnt/vendor/persist/camera(/.*)? u:object_r:vendor_persist_camera_file:s0
/vendor/bin/remosaic_daemon u:object_r:vendor_remosaic_daemon_exec:s0
/vendor/lib(64)?/libal(CFR|hLDC)\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_.*\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgoengine\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmibokeh_712\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmpbase\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libVD.*\.so u:object_r:same_process_hal_file:s0
# Display
/sys/devices/platform/soc/[a-z0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/disp_param u:object_r:sysfs_graphics:s0
/sys/devices/platform/soc/[a-z0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/dynamic_fps u:object_r:sysfs_graphics:s0
/sys/devices/platform/soc/[a-z0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/hbm_status u:object_r:sysfs_graphics:s0
/sys/devices/platform/soc/[a-z0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/panel_info u:object_r:sysfs_graphics:s0
/sys/devices/platform/soc/[a-z0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/smart_fps_value u:object_r:sysfs_graphics:s0
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.1-service\.sdm710 u:object_r:hal_lineage_livedisplay_qti_exec:s0
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.1-service\.sdm710 u:object_r:hal_lineage_livedisplay_qti_exec:s0
# Fingerprint
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.3-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.3-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
# Fingerprint data
/data/gf_data(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/fpc(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/data/vendor/fpdump(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/data/vendor/goodix(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/data/vendor/syna(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/mnt/vendor/persist/goodix(/.*)? u:object_r:persist_fingerprint_file:s0
/data/gf_data(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/fpc(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/data/vendor/fpdump(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/data/vendor/goodix(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/data/vendor/syna(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/mnt/vendor/persist/goodix(/.*)? u:object_r:vendor_persist_fingerprint_file:s0
# Fingerprint devices
/dev/goodix_fp u:object_r:fingerprint_device:s0
/dev/vfsspi u:object_r:fingerprint_device:s0
/dev/goodix_fp u:object_r:fingerprint_device:s0
/dev/vfsspi u:object_r:fingerprint_device:s0
# GPS
/vendor/bin/glgps u:object_r:glgps_exec:s0
/vendor/bin/ignss_2_0 u:object_r:hal_gnss_default_exec:s0
/vendor/bin/lhd u:object_r:lhd_exec:s0
/vendor/bin/glgps u:object_r:vendor_glgps_exec:s0
/vendor/bin/ignss_2_0 u:object_r:hal_gnss_default_exec:s0
/vendor/bin/lhd u:object_r:vendor_lhd_exec:s0
# GPS data
/data/vendor/gps(/.*)? u:object_r:gps_data_file:s0
/data/vendor/gps(/.*)? u:object_r:vendor_gps_data_file:s0
# GPS devices
/dev/bbd_control u:object_r:gps_device:s0
/dev/bbd_patch u:object_r:gps_device:s0
/dev/bbd_sensor u:object_r:gps_device:s0
/dev/ttyBCM u:object_r:gps_device:s0
/dev/bbd_control u:object_r:gps_device:s0
/dev/bbd_patch u:object_r:gps_device:s0
/dev/bbd_sensor u:object_r:gps_device:s0
/dev/ttyBCM u:object_r:gps_device:s0
# GPS nodes
/dev/socket/gps u:object_r:gps_socket:s0
/sys/devices/platform/soc/[0-9]+\.spi/spi_master/spi[0-9]+/spi[0-9]+\.0/nstandby u:object_r:sysfs_gps:s0
/dev/socket/gps u:object_r:vendor_gps_socket:s0
/sys/devices/platform/soc/[0-9]+\.spi/spi_master/spi[0-9]+/spi[0-9]+\.0/nstandby u:object_r:sysfs_gps:s0
# IR
/vendor/bin/hw/android\.hardware\.ir@1\.0-service\.xiaomi u:object_r:hal_ir_default_exec:s0
/vendor/bin/hw/android\.hardware\.ir-service\.xiaomi u:object_r:hal_ir_default_exec:s0
# IR devices
/dev/ir_spi u:object_r:lirc_device:s0
/dev/lirc[0-9] u:object_r:lirc_device:s0
/dev/spidev[0-9]\.1 u:object_r:lirc_device:s0
/dev/ir_spi u:object_r:lirc_device:s0
/dev/lirc[0-9]+ u:object_r:lirc_device:s0
/dev/spidev[0-9]+\.1 u:object_r:lirc_device:s0
# LED
/sys/devices/platform/soc/[a-z0-9]+.qcom,spmi/spmi-[0-1]/spmi0-0[0-9]/[a-z0-9]+.qcom,spmi:qcom,[a-z0-9]+@[0-9]:qcom,leds@d000/leds(/.*)? u:object_r:sysfs_leds:s0
/sys/devices/platform/soc/[a-z0-9]+.i2c/i2c-[0-9]/[0-9]-[a-z0-9]+/leds(/.*)? u:object_r:sysfs_leds:s0
/sys/devices/platform/soc/[a-z0-9]+.qcom,spmi/spmi-[0-1]/spmi0-0[0-9]/[a-z0-9]+.qcom,spmi:qcom,[a-z0-9]+@[0-9]:qcom,leds@d000/leds(/.*)? u:object_r:sysfs_leds:s0
/sys/devices/platform/soc/[a-z0-9]+.i2c/i2c-[0-9]/[0-9]-[a-z0-9]+/leds(/.*)? u:object_r:sysfs_leds:s0
# Lights
/vendor/bin/hw/android\.hardware\.light-service\.xiaomi u:object_r:hal_light_default_exec:s0
/vendor/bin/hw/android\.hardware\.light-service\.xiaomi u:object_r:hal_light_default_exec:s0
# Mlipay
/vendor/bin/mlipayd@1\.1 u:object_r:hal_mlipay_default_exec:s0
/vendor/bin/mlipayd@1\.1 u:object_r:hal_mlipay_default_exec:s0
# Neural-networks
/vendor/bin/hw/android\.hardware\.neuralnetworks@1\.2-service-qti u:object_r:hal_neuralnetworks_default_exec:s0
# Power
/vendor/bin/hw/android\.hardware\.power-service\.xiaomi-libperfmgr u:object_r:hal_power_default_exec:s0
/vendor/bin/hw/android\.hardware\.neuralnetworks@1\.2-service-qti u:object_r:hal_neuralnetworks_default_exec:s0
# Thermal
/data/vendor/thermal(/.*)? u:object_r:thermal_data_file:s0
/vendor/bin/mi_thermald u:object_r:mi_thermald_exec:s0
/data/vendor/thermal(/.*)? u:object_r:vendor_thermal_data_file:s0
# Ultrasound devices
/dev/elliptic(.*)? u:object_r:ultrasound_device:s0
/dev/mius(.*)? u:object_r:ultrasound_device:s0
/dev/elliptic(.*)? u:object_r:ultrasound_device:s0
/dev/mius(.*)? u:object_r:ultrasound_device:s0
# WiFi
/data/vendor/mac_addr(/.*)? u:object_r:wifi_vendor_data_file:s0
/vendor/bin/nv_mac u:object_r:wcnss_service_exec:s0
# Wi-Fi
/data/vendor/mac_addr(/.*)? u:object_r:wifi_vendor_data_file:s0
/vendor/bin/nv_mac u:object_r:wcnss_service_exec:s0

View File

@@ -1,16 +1,13 @@
# Display
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/idle_state u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/idle_state u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display u:object_r:sysfs_graphics:s0
# Fingerprint
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc/device_prepare u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc/fingerdown_wait u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc/irq u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc/wakeup_enable u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_goodix/proximity_state u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_goodix u:object_r:sysfs_fingerprint:s0
# FOD
genfscon sysfs /devices/virtual/touch/tp_dev/fod_status u:object_r:sysfs_fingerprint:s0
genfscon sysfs /devices/virtual/touch/tp_dev/fod_status u:object_r:sysfs_graphics:s0
# Health
genfscon sysfs /class/power_supply/battery/capacity u:object_r:sysfs_battery_supply:s0
@@ -24,32 +21,21 @@ genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.q
genfscon sysfs /devices/platform/soc/soc:maxim_ds28e16/power_supply/batt_verify u:object_r:sysfs_battery_supply:s0
# LED
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/flashlight/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:torch_0/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:torch_1/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:switch_0/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:switch_1/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/white u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/flashlight/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:torch_0/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:torch_1/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:switch_0/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds/led:switch_1/brightness u:object_r:sysfs_leds:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/white u:object_r:sysfs_leds:s0
# Power
genfscon debugfs /sched_features u:object_r:debugfs_sched_features:s0
genfscon proc /sys/kernel/sched_autogroup_enabled u:object_r:proc_sysctl_autogroup:s0
genfscon proc /sys/kernel/sched_boost u:object_r:proc_sysctl_schedboost:s0
genfscon sysfs /power/rpmh_stats/master_stats u:object_r:sysfs_rpm:s0
genfscon sysfs /power/system_sleep/stats u:object_r:sysfs_system_sleep_stats:s0
# Subsystem
genfscon sysfs /devices/platform/soc/soc:qcom,cpubw u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/platform/soc/soc:qcom,gpubw u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/platform/soc/soc:qcom,l3-cpu0 u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/platform/soc/soc:qcom,l3-cpu4 u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/platform/soc/soc:qcom,llccbw u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/platform/soc/soc:qcom,mincpubw u:object_r:sysfs_msm_subsys:s0
genfscon proc /sys/kernel/sched_autogroup_enabled u:object_r:proc_sysctl_autogroup:s0
genfscon proc /sys/kernel/sched_boost u:object_r:proc_sysctl_schedboost:s0
# Touchscreen
genfscon proc /tp_fw_version u:object_r:proc_tp:s0
genfscon proc /tp_lockdown_info u:object_r:proc_tp:s0
genfscon sysfs /touchpanel u:object_r:sysfs_touchpanel:s0
genfscon proc /tp_fw_version u:object_r:proc_tp:s0
genfscon proc /tp_lockdown_info u:object_r:proc_tp:s0
genfscon sysfs /touchpanel u:object_r:sysfs_touchpanel:s0
# Wi-Fi
genfscon debugfs /wlan0 u:object_r:debugfs_wlan:s0
genfscon debugfs /wlan0 u:object_r:debugfs_wlan:s0

View File

@@ -1,24 +0,0 @@
type glgps, domain;
type glgps_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(glgps)
net_domain(glgps)
allow glgps fwk_sensor_hwservice:hwservice_manager find;
allow glgps gps_data_file:dir create_dir_perms;
allow glgps gps_data_file:fifo_file create_file_perms;
allow glgps gps_data_file:file create_file_perms;
allow glgps gps_data_file:lnk_file create_file_perms;
allow glgps gps_data_file:sock_file create_file_perms;
allow glgps gps_device:chr_file rw_file_perms;
allow glgps self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
allow glgps gps_socket:sock_file create_file_perms;
binder_call(glgps, system_server)
typeattribute glgps halclientdomain;
wakelock_use(glgps)

View File

@@ -1,7 +1,7 @@
allow hal_audio_default mnt_vendor_file:dir search;
r_dir_file(hal_audio_default, persist_audio_file)
r_dir_file(hal_audio_default, vendor_persist_audio_file)
get_prop(hal_audio_default, vendor_bluetooth_prop)
set_prop(hal_audio_default, vendor_audio_prop)
allow hal_audio_default audio_socket:sock_file rw_file_perms;
allow hal_audio_default vendor_audio_socket:sock_file rw_file_perms;

View File

@@ -2,7 +2,7 @@ hal_client_domain(hal_camera_default, hal_graphics_allocator)
allow hal_camera_default gpu_device:chr_file rw_file_perms;
allow hal_camera_default remosaic_daemon_service:service_manager find;
allow hal_camera_default vendor_remosaic_daemon_service:service_manager find;
allow hal_camera_default sysfs_kgsl:dir search;
allow hal_camera_default sysfs_kgsl:file r_file_perms;
@@ -13,7 +13,7 @@ allow hal_camera_default sysfs_leds:lnk_file read;
allow hal_camera_default sysfs_thermal:file w_file_perms;
r_dir_file(hal_camera_default, persist_camera_file)
r_dir_file(hal_camera_default, vendor_persist_camera_file)
get_prop(hal_camera_default, sensors_prop)
set_prop(hal_camera_default, vendor_camera_prop)

View File

@@ -12,14 +12,12 @@ allow hal_fingerprint_default input_device:chr_file rw_file_perms;
allow hal_fingerprint_default sysfs_graphics:dir search;
allow hal_fingerprint_default sysfs_graphics:file rw_file_perms;
allow hal_fingerprint_default sysfs_msm_subsys:dir search;
allow hal_fingerprint_default sysfs_msm_subsys:file r_file_perms;
set_prop(hal_fingerprint_default, vendor_fp_prop)
set_prop(hal_fingerprint_default, vendor_fingerprint_prop)
hal_client_domain(hal_fingerprint_default, hal_perf)
allow hal_fingerprint_default persist_fingerprint_file:dir create_dir_perms;
allow hal_fingerprint_default persist_fingerprint_file:file create_file_perms;
allow hal_fingerprint_default vendor_persist_fingerprint_file:dir create_dir_perms;
allow hal_fingerprint_default vendor_persist_fingerprint_file:file create_file_perms;
allow hal_fingerprint_default sysfs_touchpanel:dir search;
allow hal_fingerprint_default sysfs_touchpanel:file rw_file_perms;

View File

@@ -1,2 +1,2 @@
allow hal_gnss_default gps_data_file:dir rw_dir_perms;
allow hal_gnss_default gps_data_file:fifo_file create_file_perms;
allow hal_gnss_default vendor_gps_data_file:dir rw_dir_perms;
allow hal_gnss_default vendor_gps_data_file:fifo_file create_file_perms;

View File

@@ -9,5 +9,5 @@ allow hal_mlipay_default ion_device:chr_file rw_file_perms;
allow hal_mlipay_default tee_device:chr_file rw_file_perms;
r_dir_file(hal_mlipay_default, firmware_file)
get_prop(hal_mlipay_default, vendor_fp_prop)
get_prop(hal_mlipay_default, vendor_fingerprint_prop)
set_prop(hal_mlipay_default, vendor_tee_listener_prop)

View File

@@ -1,31 +1,6 @@
allow hal_power_default input_device:dir r_dir_perms;
allow hal_power_default input_device:chr_file rw_file_perms;
allow hal_power_default sysfs_graphics:dir search;
allow hal_power_default sysfs_graphics:file r_file_perms;
allow hal_power_default sysfs_rpm:file r_file_perms;
allow hal_power_default sysfs_system_sleep_stats:file r_file_perms;
allow hal_power_default sysfs_touchpanel:dir r_dir_perms;
allow hal_power_default sysfs_touchpanel:dir search;
allow hal_power_default sysfs_touchpanel:file rw_file_perms;
allow hal_power_default debugfs_wlan:dir r_dir_perms;
allow hal_power_default debugfs_wlan:file r_file_perms;
# To do powerhint on nodes defined in powerhint.json
allow hal_power_default sysfs_devfreq:dir search;
allow hal_power_default sysfs_devfreq:file rw_file_perms;
allow hal_power_default sysfs_kgsl:lnk_file read;
allow hal_power_default sysfs_kgsl:file rw_file_perms;
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 device_latency: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 debugfs_sched_features:file rw_file_perms;
allow hal_power_default proc_sysctl_schedboost:file rw_file_perms;
# To get/set powerhal state property
set_prop(hal_power_default, vendor_power_prop)

View File

@@ -1,8 +1,8 @@
allow hal_sensors_default mnt_vendor_file:file r_file_perms;
allow hal_sensors_default ultrasound_device:chr_file rw_file_perms;
allow hal_sensors_default audio_socket:sock_file rw_file_perms;
unix_socket_connect(hal_sensors_default, audio, hal_audio_default)
allow hal_sensors_default vendor_audio_socket:sock_file rw_file_perms;
unix_socket_connect(hal_sensors_default, vendor_audio, hal_audio_default)
# Touchpanel nodes
allow hal_sensors_default sysfs_touchpanel:dir search;

View File

@@ -1,14 +0,0 @@
type lhd, domain;
type lhd_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(lhd)
net_domain(lhd)
allow lhd gps_data_file:dir create_dir_perms;
allow lhd gps_data_file:fifo_file create_file_perms;
allow lhd gps_data_file:file create_file_perms;
allow lhd gps_device:chr_file rw_file_perms;
allow lhd sysfs_gps:file rw_file_perms;
wakelock_use(lhd)

View File

@@ -1,28 +0,0 @@
type mi_thermald, domain;
type mi_thermald_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(mi_thermald)
allow mi_thermald self:capability { chown fowner fsetid };
# Allow mi_thermald to read thermal_data_file
allow mi_thermald thermal_data_file:dir rw_dir_perms;
allow mi_thermald thermal_data_file:file create_file_perms;
r_dir_file(mi_thermald, sysfs_battery_supply)
r_dir_file(mi_thermald, sysfs_devices_system_cpu)
r_dir_file(mi_thermald, sysfs_graphics)
r_dir_file(mi_thermald, sysfs_kgsl)
r_dir_file(mi_thermald, sysfs_leds)
r_dir_file(mi_thermald, sysfs_thermal)
allow mi_thermald sysfs_battery_supply:file rw_file_perms;
allow mi_thermald sysfs_battery_supply:lnk_file rw_file_perms;
allow mi_thermald sysfs_devices_system_cpu:file rw_file_perms;
allow mi_thermald sysfs_devices_system_cpu:lnk_file rw_file_perms;
allow mi_thermald sysfs_kgsl:file rw_file_perms;
allow mi_thermald sysfs_kgsl:lnk_file rw_file_perms;
allow mi_thermald sysfs_thermal:file rw_file_perms;
allow mi_thermald sysfs_thermal:lnk_file rw_file_perms;
set_prop(mi_thermald, vendor_thermal_normal_prop)

View File

@@ -2,9 +2,7 @@ vendor_public_prop(vendor_camera_prop)
vendor_internal_prop(vendor_dpps_prop)
vendor_public_prop(vendor_fp_prop)
vendor_internal_prop(vendor_power_prop)
vendor_public_prop(vendor_fingerprint_prop)
vendor_public_prop(vendor_sensors_prop)

View File

@@ -1,61 +1,55 @@
# Audio
audio.soundtrigger.debug.urser_id u:object_r:vendor_audio_prop:s0
audio_hal. u:object_r:vendor_audio_prop:s0
audio.offload.buffer.size.kb u:object_r:vendor_audio_prop:s0
audio.offload.gapless.enabled u:object_r:vendor_audio_prop:s0
persist.audio.fluence.speaker u:object_r:vendor_audio_prop:s0
persist.audio.fluence.voicecall u:object_r:vendor_audio_prop:s0
persist.audio.fluence.voicerec u:object_r:vendor_audio_prop:s0
ro.qc.sdk.audio.fluencetype u:object_r:vendor_audio_prop:s0
audio.soundtrigger.debug.urser_id u:object_r:vendor_audio_prop:s0
audio_hal. u:object_r:vendor_audio_prop:s0
audio.offload.buffer.size.kb u:object_r:vendor_audio_prop:s0
audio.offload.gapless.enabled u:object_r:vendor_audio_prop:s0
persist.audio.fluence.speaker u:object_r:vendor_audio_prop:s0
persist.audio.fluence.voicecall u:object_r:vendor_audio_prop:s0
persist.audio.fluence.voicerec u:object_r:vendor_audio_prop:s0
ro.qc.sdk.audio.fluencetype u:object_r:vendor_audio_prop:s0
# Camera
camera. u:object_r:vendor_camera_prop:s0
persist.camera. u:object_r:vendor_camera_prop:s0
persist.debug.sf.showfps u:object_r:vendor_camera_prop:s0
persist.vendor.camera u:object_r:vendor_camera_prop:s0
ro.camera.res.fmq.size u:object_r:vendor_camera_prop:s0
ro.camera.req.fmq.size u:object_r:vendor_camera_prop:s0
ro.vendor.camera. u:object_r:vendor_camera_prop:s0
vendor.camera.boot_complete u:object_r:vendor_camera_prop:s0
vendor.camera.sensor. u:object_r:vendor_camera_prop:s0
vidhance. u:object_r:vendor_camera_prop:s0
camera. u:object_r:vendor_camera_prop:s0
persist.camera. u:object_r:vendor_camera_prop:s0
persist.debug.sf.showfps u:object_r:vendor_camera_prop:s0
persist.vendor.camera u:object_r:vendor_camera_prop:s0
ro.camera.res.fmq.size u:object_r:vendor_camera_prop:s0
ro.camera.req.fmq.size u:object_r:vendor_camera_prop:s0
ro.vendor.camera. u:object_r:vendor_camera_prop:s0
vendor.camera.boot_complete u:object_r:vendor_camera_prop:s0
vendor.camera.sensor. u:object_r:vendor_camera_prop:s0
vidhance. u:object_r:vendor_camera_prop:s0
# Display post processing
init.svc.ppd u:object_r:vendor_dpps_prop:s0
ro.vendor.display.ad u:object_r:vendor_dpps_prop:s0
ro.vendor.display.sensortype u:object_r:vendor_dpps_prop:s0
init.svc.ppd u:object_r:vendor_dpps_prop:s0
ro.vendor.display.ad u:object_r:vendor_dpps_prop:s0
ro.vendor.display.sensortype u:object_r:vendor_dpps_prop:s0
# Fingerprint
fpc_kpi u:object_r:vendor_fp_prop:s0
gf.debug. u:object_r:vendor_fp_prop:s0
persist.sys.fp. u:object_r:vendor_fp_prop:s0
persist.vendor.fpc. u:object_r:vendor_fp_prop:s0
persist.vendor.sys.fp. u:object_r:vendor_fp_prop:s0
ro.boot.fpsensor u:object_r:vendor_fp_prop:s0
ro.hardware.fp u:object_r:vendor_fp_prop:s0
sys.panel. u:object_r:vendor_fp_prop:s0
vendor.fps_hal. u:object_r:vendor_fp_prop:s0
fpc_kpi u:object_r:vendor_fingerprint_prop:s0
gf.debug. u:object_r:vendor_fingerprint_prop:s0
persist.sys.fp. u:object_r:vendor_fingerprint_prop:s0
persist.vendor.fpc. u:object_r:vendor_fingerprint_prop:s0
persist.vendor.sys.fp. u:object_r:vendor_fingerprint_prop:s0
ro.boot.fpsensor u:object_r:vendor_fingerprint_prop:s0
ro.hardware.fp u:object_r:vendor_fingerprint_prop:s0
sys.panel. u:object_r:vendor_fingerprint_prop:s0
vendor.fps_hal. u:object_r:vendor_fingerprint_prop:s0
# MIUI specific
ro.boot.factorybuild u:object_r:exported_default_prop:s0
ro.boot.hwversion u:object_r:exported_default_prop:s0
ro.carrier.name u:object_r:exported_default_prop:s0
ro.miui.cust_variant u:object_r:exported_default_prop:s0
ro.boot.factorybuild u:object_r:exported_default_prop:s0
ro.boot.hwversion u:object_r:exported_default_prop:s0
ro.carrier.name u:object_r:exported_default_prop:s0
ro.miui.cust_variant u:object_r:exported_default_prop:s0
# Mlipay
persist.vendor.sys.pay u:object_r:vendor_tee_listener_prop:s0
# Power
vendor.powerhal. u:object_r:vendor_power_prop:s0
persist.vendor.sys.pay u:object_r:vendor_tee_listener_prop:s0
# Sensors
persist.sensor. u:object_r:vendor_sensors_prop:s0
invn.hal.data. u:object_r:vendor_sensors_prop:s0
invn.hal.debug. u:object_r:vendor_sensors_prop:s0
invn.hal.entry. u:object_r:vendor_sensors_prop:s0
invn.hal.verbose. u:object_r:vendor_sensors_prop:s0
invn.hal. u:object_r:vendor_sensors_prop:s0
persist.sensor. u:object_r:vendor_sensors_prop:s0
# Thermal
persist.sys.thermal. u:object_r:vendor_thermal_normal_prop:s0
sys.thermal. u:object_r:vendor_thermal_normal_prop:s0
vendor.sys.thermal. u:object_r:vendor_thermal_normal_prop:s0
persist.sys.thermal. u:object_r:vendor_thermal_normal_prop:s0
sys.thermal. u:object_r:vendor_thermal_normal_prop:s0
vendor.sys.thermal. u:object_r:vendor_thermal_normal_prop:s0

View File

@@ -1,8 +0,0 @@
type remosaic_daemon, domain;
type remosaic_daemon_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(remosaic_daemon)
vndbinder_use(remosaic_daemon)
add_service(remosaic_daemon, remosaic_daemon_service)

View File

@@ -1 +1,2 @@
# Allow rild to set IMEI props
set_prop(rild, deviceid_prop)

View File

@@ -1 +1 @@
binder_call(system_server, glgps)
binder_call(system_server, vendor_glgps)

View File

@@ -3,5 +3,5 @@ typeattribute tee data_between_core_and_vendor_violators;
allow tee fingerprint_data_file:dir create_dir_perms;
allow tee fingerprint_data_file:file create_file_perms;
allow tee persist_fingerprint_file:dir create_dir_perms;
allow tee persist_fingerprint_file:file create_file_perms;
allow tee vendor_persist_fingerprint_file:dir create_dir_perms;
allow tee vendor_persist_fingerprint_file:file create_file_perms;

View File

@@ -1,5 +1,5 @@
allow thermal-engine thermal_data_file:dir rw_dir_perms;
allow thermal-engine thermal_data_file:file create_file_perms;
allow thermal-engine vendor_thermal_data_file:dir rw_dir_perms;
allow thermal-engine vendor_thermal_data_file:file create_file_perms;
allow thermal-engine self:capability { chown fowner };
allow thermal-engine sysfs_devfreq:dir r_dir_perms;

24
sepolicy/vendor/vendor_glgps.te vendored Normal file
View File

@@ -0,0 +1,24 @@
type vendor_glgps, domain;
type vendor_glgps_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(vendor_glgps)
net_domain(vendor_glgps)
allow vendor_glgps fwk_sensor_hwservice:hwservice_manager find;
allow vendor_glgps vendor_gps_data_file:dir create_dir_perms;
allow vendor_glgps vendor_gps_data_file:fifo_file create_file_perms;
allow vendor_glgps vendor_gps_data_file:file create_file_perms;
allow vendor_glgps vendor_gps_data_file:lnk_file create_file_perms;
allow vendor_glgps vendor_gps_data_file:sock_file create_file_perms;
allow vendor_glgps gps_device:chr_file rw_file_perms;
allow vendor_glgps self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
allow vendor_glgps vendor_gps_socket:sock_file create_file_perms;
binder_call(vendor_glgps, system_server)
typeattribute vendor_glgps halclientdomain;
wakelock_use(vendor_glgps)

View File

@@ -5,7 +5,6 @@ allow vendor_init proc_watermark_scale_factor:file w_file_perms;
get_prop(vendor_init, persist_debug_prop)
set_prop(vendor_init, vendor_camera_prop)
set_prop(vendor_init, vendor_dpps_prop)
set_prop(vendor_init, vendor_fp_prop)
set_prop(vendor_init, vendor_power_prop)
set_prop(vendor_init, vendor_fingerprint_prop)
set_prop(vendor_init, vendor_ssr_prop)
set_prop(vendor_init, vendor_video_prop)

14
sepolicy/vendor/vendor_lhd.te vendored Normal file
View File

@@ -0,0 +1,14 @@
type vendor_lhd, domain;
type vendor_lhd_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(vendor_lhd)
net_domain(vendor_lhd)
allow vendor_lhd vendor_gps_data_file:dir create_dir_perms;
allow vendor_lhd vendor_gps_data_file:fifo_file create_file_perms;
allow vendor_lhd vendor_gps_data_file:file create_file_perms;
allow vendor_lhd gps_device:chr_file rw_file_perms;
allow vendor_lhd sysfs_gps:file rw_file_perms;
wakelock_use(vendor_lhd)

View File

@@ -0,0 +1,8 @@
type vendor_remosaic_daemon, domain;
type vendor_remosaic_daemon_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(vendor_remosaic_daemon)
vndbinder_use(vendor_remosaic_daemon)
add_service(vendor_remosaic_daemon, vendor_remosaic_daemon_service)

View File

@@ -1 +1 @@
type remosaic_daemon_service, vndservice_manager_type;
type vendor_remosaic_daemon_service, vndservice_manager_type;

View File

@@ -1,2 +1,2 @@
# Camera
android.IRemosaicDaemon u:object_r:remosaic_daemon_service:s0
android.IRemosaicDaemon u:object_r:vendor_remosaic_daemon_service:s0

View File

@@ -1,3 +1,6 @@
# Camera
vendor.camera.aux.packagelist=org.codeaurora.snapcam,com.android.camera,org.lineageos.aperture,org.lineageos.aperture.dev
# Fwk detect
ro.vendor.qti.va_aosp.support=1

View File

@@ -146,6 +146,7 @@ drm.service.enabled=true
ro.frp.pst=/dev/block/bootdevice/by-name/frp
# Graphics
debug.sf.auto_latch_unsignaled=0
debug.sf.enable_hwc_vds=1
debug.sf.hw=0
debug.sf.latch_unsignaled=1
@@ -153,6 +154,7 @@ persist.sys.sf.native_mode=2
ro.hardware.egl=adreno
ro.hardware.vulkan=adreno
ro.opengles.version=196610
ro.surface_flinger.enable_frame_rate_override=false
ro.surface_flinger.force_hwc_copy_for_virtual_displays=true
ro.surface_flinger.has_HDR_display=true
ro.surface_flinger.has_wide_color_display=true
@@ -218,14 +220,17 @@ persist.rcs.supported=1
persist.vendor.ssr.restart_level=ALL_ENABLE
# USB
ro.usb.uvc.enabled=true
sys.usb.mtp.batchcancel=1
vendor.usb.controller=a600000.dwc3
vendor.usb.diag.func.name=diag
vendor.usb.dpl.inst.name=dpl
vendor.usb.qdss.inst.name=qdss
vendor.usb.rmnet.func.name=gsi
vendor.usb.rmnet.inst.name=rmnet
vendor.usb.rndis.func.name=gsi
vendor.usb.use_ffs_mtp=0
vendor.usb.use_gadget_hal=0
vendor.usb.use_ffs_mtp=1
vendor.usb.use_gadget_hal=1
# Zygote
zygote.critical_window.minute=10