Compare commits

...

50 Commits

Author SHA1 Message Date
Ivan Vecera 630f030313 sm7125-common: rro_overlays: Enable WPA3-SAE for SoftAP 4 days ago
Giovanni Ricca 97be3e7b9f sm7125-common: media: Reapply media codecs settings 4 days ago
dianlujitao 7e198cb69d sm7125-common: remove OMX 4 days ago
Giovanni Ricca e889f6cd73 sm7125-common: media: Update `c2.qti.avc.decoder` specification for atoll 4 days ago
wenchangliu f16cd3bea2 sm7125-common: add "can-swap-width-height" for video codecs 4 days ago
basamaryan 70b59b2463 sm7125-common: media: Import Codec2 configs 4 days ago
Giovanni Ricca b9e7e01fe7 sm7125-common: Update Media C2 stack from V14.0.9.0.SKGMIXM 4 days ago
Giovanni Ricca 7659f924d5 sm7125-common: Import QTI Codec2 HAL and switch to Codec2 by default 4 days ago
Michael Bestas c0d246f51d sm7125-common: Drop unused libmm-omxcore 1 week ago
Michael Bestas 5f52610158 sm7125-common: Remove OMX audio codecs 2 weeks ago
Jenna 5e14a3f398 sm7125-common: ebnable UDFPS-customization 3 weeks ago
borbelyvince 11573120c1 sm7125-common: fixup fingerprint: Use soong config instead of kernel headers 4 weeks ago
Haky86 26b5789319 sm7125-common: Switch libudfps_extension to hardware/samsung 4 weeks ago
Jenna 4c3396264c sm7125-common: Fix lockscreen charging info. 1 month ago
Michael Bestas 5349b3dcce sm7125-common: Do not override ro.opengles.version 1 month ago
Simon1511 90fd1d5568 sm7325-common: manually build libutilscallstack 1 month ago
Jenna 259056f9e4 Build microG 1 month ago
Jenna b81bab66fc sm7125-common: overlay: fix dynamic clock-icon 1 month ago
Michael Bestas 2e7b62aa41
sm7125-common: Update display flags & packages 1 month ago
Yumi Yukimura 60c4222eb3 sm7125-common: Switch to QTI Memtrack AIDL HAL 2 months ago
Alp dfdfb7540c sm7125-common: overlay: Set rounded_corner_content_padding 2 months ago
Simon1511 9993fb1a90 sm7125-common: setup ELF checks 2 months ago
Michael Bestas 0eb1b31e7e sm7125-common: Sync extract scripts with templates 2 months ago
Simon1511 df74a6d7f6 sm7125-common: pull all blobs from A525FXXUAFXL2 2 months ago
Bruno Martins cdf9885652 sm7125-common: Switch to health AIDL HAL 2 months ago
Michael Bestas f05bf4790f sm7125-common: Remove media_codecs_google_c2* 2 months ago
Alexander Koskovich fb0255f3c8 sm7125-common: Remove vendor RenderScript implementation. 2 months ago
Christian Hoffmann f67bcde0c6 sm7125-common: Drop gatekeeper rc file 2 months ago
Bruno Martins 0127983c56 sm7125-common: Remove software OMX blobs 2 months ago
Michael Bestas 3d6f1e15f9 sm7125-common: Use AOSP default Codec2/OMX ranks 2 months ago
Michael Bestas c26f22bde8 sm7125-common: Shim libwvhidl with libcrypto_shim 2 months ago
johnmart19 a487ce996e sm7125-common: Update QTI USB to android.hardware.usb-service.qti 2 months ago
Kelvin Zhang a662e2be0f sm7125-common: Allow to access bootable/deprecated-ota targets 2 months ago
Tim Zimmermann fa092d5030 sm7125-common: recovery: Update edify include path for Android V 2 months ago
pjgowtham b59be7388d sm7125-common: fingerprint: Set dim layer zOrder 3 months ago
Aaron Kling 865c2d5f9f sm7125-common: Remove software omx codec references 7 months ago
Bruno Martins 448998bf1d sm7125-common: Unset BUILD_BROKEN_INCORRECT_PARTITION_IMAGES 7 months ago
Bruno Martins 31461358c7 sm7125-common: Declare EGL libs as symlinks during extraction 7 months ago
Bruno Martins c5c98fdf68 sm7125-common: Move to new RFS install_symlink targets 7 months ago
Bruno Martins 46811e8b65 sm7125-common: Inherit from QTI FCM 7 months ago
Bruno Martins 60bfd278ac sm7125-common: Use the common device compatibility matrix from QCOM 7 months ago
Andrzej Szafran e80167c0e5 sm7125-common: Include hardware/samsung FCM 7 months ago
Tim Zimmermann 91b81cd426 sm7125-common: Switch to AIDL camera HAL 8 months ago
Michael Bestas 7d773c30e3 sm7125-common: Build missing libraries for 14 QPR3 8 months ago
Simon1511 66d8f8ef4b sm7125-common: update everything to A525FXXS7FXE2 8 months ago
Tim Zimmermann df2bcc0d33 sm7125-common: Use pixel power HAL directly 8 months ago
Simon1511 d5b04790bb sm7125-common: switch to U RIL 8 months ago
Simon1511 0b639ee7d4 Revert "sm7125-common: audio: add dedicated service to pass g_call_sim_slot" 10 months ago
Simon1511 c8b3e2e1d1 sm7125-common: overlay: set phyical power button location 10 months ago
Simon1511 ecafb627ef sm7125-common: sepolicy: allow fingerprint read on sysfs_lcd_writable 10 months ago
  1. 149
      Android.mk
  2. 23
      BoardConfigCommon.mk
  3. 6
      audio/impl/Android.bp
  4. 31
      audio/impl/PrimaryDevice.cpp
  5. 3
      audio/impl/include/core/default/Device.h
  6. 30
      audio/service/Android.bp
  7. 55
      audio/service/audio_parameter_service.cpp
  8. 16
      audio/service/audio_parameter_service.rc
  9. 84
      common.mk
  10. 88
      configs/compatibility_matrix.xml
  11. 848
      configs/framework_compatibility_matrix.xml
  12. 8
      configs/init/android.hardware.gatekeeper@1.0-service.rc
  13. 40
      configs/manifest.xml
  14. 418
      configs/media/media_codecs.xml
  15. 272
      configs/media/media_codecs_c2.xml
  16. 271
      configs/media/media_codecs_performance.xml
  17. 188
      configs/media/media_codecs_performance_c2.xml
  18. 45
      configs/media/system_properties.xml
  19. 4
      configs/wifi/WCNSS_qcom_cfg.ini
  20. 4
      configs/wifi/wpa_supplicant_overlay.conf
  21. 95
      extract-files.sh
  22. 10
      fingerprint/Android.bp
  23. 33
      fingerprint/UdfpsExtension.cpp
  24. 3
      overlay/frameworks/base/packages/SystemUI/res/values/config.xml
  25. 5
      overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
  26. 116
      overlay/packages/apps/DeskClock/res/mipmap-anydpi/launcher_clock.xml
  27. 348
      proprietary-files.txt
  28. 2
      recovery/Android.bp
  29. 4
      rootdir/Android.mk
  30. 11
      rootdir/etc/init.qcom.rc
  31. 5
      rootdir/etc/init.samsung.rc
  32. 2
      rootdir/etc/init.target.rc
  33. 8
      rootdir/etc/init.vendor.rilcommon.rc
  34. 2
      rootdir/etc/init.vendor.sensors.rc
  35. 3
      rootdir/etc/ueventd.qcom.rc
  36. 24
      rootdir/etc/vendor.samsung.rilchip.qcom.rc
  37. 7
      rootdir/etc/wifi_sec.rc
  38. 2
      rro_overlays/WifiOverlay/res/values/config.xml
  39. 8
      sepolicy/private/audio_parameter_service.te
  40. 1
      sepolicy/private/file_contexts
  41. 1
      sepolicy/public/property.te
  42. 1
      sepolicy/vendor/charger_vendor.te
  43. 7
      sepolicy/vendor/file_contexts
  44. 2
      sepolicy/vendor/hal_audio_default.te
  45. 3
      sepolicy/vendor/hal_fingerprint_default.te
  46. 3
      sepolicy/vendor/hwservice_contexts
  47. 3
      sepolicy/vendor/property_contexts
  48. 2
      sepolicy/vendor/rild.te
  49. 13
      sepolicy/vendor/sehradiomanager.te
  50. 14
      sepolicy/vendor/service_contexts
  51. 50
      setup-makefiles.sh
  52. 8
      vendor.prop

@ -44,153 +44,4 @@ $(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT) $(FIRMWARE_MODEM_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_MDM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/mdm/adsp/
$(RFS_MDM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MDM 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/mdm/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_MDM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/mdm/cdsp/
$(RFS_MDM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MDM 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/mdm/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_MDM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/mdm/mpss/
$(RFS_MDM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MDM 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/mdm/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
RFS_MDM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/mdm/slpi/
$(RFS_MDM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MDM 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/mdm/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
RFS_MDM_TN_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/mdm/tn/
$(RFS_MDM_TN_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MDM TN folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/tn $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/mdm/tn $@/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
RFS_APQ_GNSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/apq/gnss/
$(RFS_APQ_GNSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS APQ GNSS 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/apq/gnss $@/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
EGL_LIBS := libq3dtools_adreno.so libGLESv2_adreno.so libEGL_adreno.so
EGL_32_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/lib/,$(notdir $(EGL_LIBS)))
$(EGL_32_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "EGL 32 lib link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf egl/$(notdir $@) $@
EGL_64_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/lib64/,$(notdir $(EGL_LIBS)))
$(EGL_64_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "EGL lib link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf egl/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += \
$(RFS_MSM_ADSP_SYMLINKS) \
$(RFS_MSM_CDSP_SYMLINKS) \
$(RFS_MSM_MPSS_SYMLINKS) \
$(RFS_MSM_SLPI_SYMLINKS) \
$(RFS_MDM_ADSP_SYMLINKS) \
$(RFS_MDM_CDSP_SYMLINKS) \
$(RFS_MDM_MPSS_SYMLINKS) \
$(RFS_MDM_SLPI_SYMLINKS) \
$(RFS_MDM_TN_SYMLINKS) \
$(RFS_APQ_GNSS_SYMLINKS) \
$(EGL_32_SYMLINKS) \
$(EGL_64_SYMLINKS)
endif

@ -18,7 +18,6 @@ COMMON_PATH := device/samsung/sm7125-common
BUILD_BROKEN_DUP_RULES := true
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
BUILD_BROKEN_INCORRECT_PARTITION_IMAGES := true
# APEX image
DEXPREOPT_GENERATE_APEX_IMAGE := true
@ -151,19 +150,24 @@ $(call soong_config_set,samsungCameraVars,needs_sec_reserved_field,true)
TARGET_KEYMASTER_VARIANT := samsung
# FOD
TARGET_SURFACEFLINGER_UDFPS_LIB := //$(COMMON_PATH):libudfps_extension.sm7125
$(call soong_config_set,samsung_udfps,udfps_zorder,0x20000000u)
TARGET_SURFACEFLINGER_UDFPS_LIB := //hardware/samsung/fingerprint:libudfps_extension.samsung
TARGET_USES_FOD_ZPOS := true
TARGET_SEC_FP_REQUEST_FORCE_CALIBRATE := true
TARGET_SEC_FP_REQUEST_TOUCH_EVENT := true
TARGET_HAS_UDFPS := true # enable UDFPS-customization
# Display
TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS := 0x2000U | 0x400000000LL
# HIDL manifests
DEVICE_MANIFEST_FILE := $(COMMON_PATH)/configs/manifest.xml
DEVICE_MATRIX_FILE := $(COMMON_PATH)/configs/compatibility_matrix.xml
DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
$(COMMON_PATH)/configs/framework_compatibility_matrix.xml \
hardware/samsung/vintf/samsung_framework_compatibility_matrix.xml \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml
# QCOM
@ -181,15 +185,14 @@ TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS := false
# DRM
TARGET_ENABLE_MEDIADRM_64 := true
# Display
TARGET_USES_HWC2 := true
TARGET_USES_ION := true
TARGET_DISABLED_UBWC := true
# FM
BOARD_HAS_QCA_FM_SOC := cherokee
BOARD_HAVE_QCOM_FM := true
# Media
TARGET_USES_ION := true
TARGET_DISABLED_UBWC := true
# RIL
ENABLE_VENDOR_RIL_SERVICE := true
@ -209,8 +212,8 @@ TARGET_RELEASETOOLS_EXTENSIONS := $(COMMON_PATH)/releasetools
# SePolicy
include device/qcom/sepolicy_vndr/SEPolicy.mk
BOARD_VENDOR_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/vendor
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/public
PRODUCT_PRIVATE_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/private
PRODUCT_PUBLIC_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/public
# Vibrator
$(call soong_config_set,samsungVibratorVars,duration_amplitude,true)

@ -68,6 +68,7 @@ cc_library_shared {
"android.hardware.audio@2.0-util",
"android.hardware.audio.common@2.0",
"android.hardware.audio.common@2.0-util",
"libcutils",
],
cflags: [
"-DMAJOR_VERSION=2",
@ -85,6 +86,7 @@ cc_library_shared {
"android.hardware.audio@4.0-util",
"android.hardware.audio.common@4.0",
"android.hardware.audio.common@4.0-util",
"libcutils",
],
cflags: [
"-DMAJOR_VERSION=4",
@ -101,6 +103,7 @@ cc_library_shared {
"android.hardware.audio@5.0-util",
"android.hardware.audio.common@5.0",
"android.hardware.audio.common@5.0-util",
"libcutils",
],
cflags: [
"-DMAJOR_VERSION=5",
@ -117,6 +120,7 @@ cc_library_shared {
"android.hardware.audio@6.0-util",
"android.hardware.audio.common@6.0",
"android.hardware.audio.common@6.0-util",
"libcutils",
],
cflags: [
"-DMAJOR_VERSION=6",
@ -135,6 +139,7 @@ cc_library_shared {
"android.hardware.audio.common@7.0-enums",
"android.hardware.audio.common@7.0-util",
"libbase",
"libcutils",
],
cflags: [
"-DMAJOR_VERSION=7",
@ -154,6 +159,7 @@ cc_library_shared {
"android.hardware.audio.common@7.1-enums",
"android.hardware.audio.common@7.1-util",
"libbase",
"libcutils",
],
cflags: [
"-DMAJOR_VERSION=7",

@ -19,6 +19,9 @@
#include "core/default/PrimaryDevice.h"
#include "core/default/Util.h"
#include <cutils/properties.h>
#include <string.h>
#if MAJOR_VERSION >= 4
#include <cmath>
#endif
@ -208,6 +211,34 @@ Return<Result> PrimaryDevice::setVoiceVolume(float volume) {
}
Return<Result> PrimaryDevice::setMode(AudioMode mode) {
/* On stock ROM Samsung sets the g_call_state and g_call_sim_slot audio parameters
* in the framework, breaking it on AOSP ROMs.
* For the g_call_sim_slot parameter 0x01 describes SIM1 and 0x02 SIM2.
*/
char simSlot1[92], simSlot2[92];
// These props return either 0 (not calling),
// or 1 (SIM is calling)
property_get("vendor.calls.slot_id0", simSlot1, "");
property_get("vendor.calls.slot_id1", simSlot2, "");
// Wait until one sim slot reports a call
if (mode == AudioMode::IN_CALL) {
while (strcmp(simSlot1, "0") == 0 && strcmp(simSlot2, "0") == 0) {
property_get("vendor.calls.slot_id0", simSlot1, "");
property_get("vendor.calls.slot_id1", simSlot2, "");
}
}
if (strcmp(simSlot1, "1") == 0) {
// SIM1
mDevice->halSetParameters("g_call_sim_slot=0x01");
} else if (strcmp(simSlot2, "1") == 0) {
// SIM2
mDevice->halSetParameters("g_call_sim_slot=0x02");
}
// INVALID, CURRENT, CNT, MAX are reserved for internal use.
// TODO: remove the values from the HIDL interface
switch (mode) {

@ -173,6 +173,8 @@ struct Device : public IDevice, public ParametersUtil {
uint32_t version() const { return mDevice->common.version; }
int halSetParameters(const char* keysAndValues) override;
private:
bool mIsClosed;
audio_hw_device_t* mDevice;
@ -191,7 +193,6 @@ struct Device : public IDevice, public ParametersUtil {
// Methods from ParametersUtil.
char* halGetParameters(const char* keys) override;
int halSetParameters(const char* keysAndValues) override;
};
} // namespace implementation

@ -1,30 +0,0 @@
//
// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
cc_binary {
name: "audio_parameter_service.samsung_sm7125",
init_rc: ["audio_parameter_service.rc"],
system_ext_specific: true,
srcs: [
"audio_parameter_service.cpp",
],
shared_libs: [
"libbase",
"libutils",
"libhidlbase",
"liblog",
"android.hardware.audio@7.0",
],
}

@ -1,55 +0,0 @@
/*
* Copyright (C) 2023 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <android-base/properties.h>
#include <android-base/logging.h>
#include <android/hardware/audio/7.0/IDevicesFactory.h>
using android::base::GetProperty;
using android::base::SetProperty;
using android::sp;
using ::android::hardware::hidl_string;
int main() {
sp<::android::hardware::audio::V7_0::IDevice> audioDevice;
LOG(DEBUG) << "Passing g_call_sim_slot parameter";
if (!audioDevice) {
::android::hardware::audio::V7_0::IDevicesFactory::getService()->openDevice(
"primary", [&](::android::hardware::audio::V7_0::Result, const sp<::android::hardware::audio::V7_0::IDevice>& result) {
audioDevice = result;
});
}
if (audioDevice != nullptr) {
std::string value = "";
if (strcmp(GetProperty("vendor.calls.slotid", "-1").c_str(), "1") == 0) {
// SIM 2
value = "0x02";
}
audioDevice->setParameters({}, {{"g_call_sim_slot", value}});
}
if (audioDevice != nullptr)
audioDevice->close();
SetProperty("vendor.calls.parameter_state", "1");
return 0;
}

@ -1,16 +0,0 @@
service audio_parameter_service /system_ext/bin/audio_parameter_service.samsung_sm7125
oneshot
disabled
on boot
setprop vendor.calls.parameter_state 0
on property:vendor.calls.slotid=1 && property:vendor.calls.parameter_state=0
stop audioserver
start audioserver
start audio_parameter_service
on property:vendor.calls.slotid=-1 && property:vendor.calls.parameter_state=1
setprop vendor.calls.parameter_state 0
stop audioserver
start audioserver

@ -16,6 +16,9 @@
COMMON_PATH := device/samsung/sm7125-common
# Add common definitions for Qualcomm
$(call inherit-product, hardware/qcom-caf/common/common.mk)
DEVICE_PACKAGE_OVERLAYS += $(COMMON_PATH)/overlay
# Partitions
@ -49,7 +52,7 @@ PRODUCT_PACKAGES += \
init.audio.samsung.rc \
init.nfc.samsung.rc \
init.vendor.onebinary.rc \
init.vendor.rilchip.rc \
vendor.samsung.rilchip.qcom.rc \
init.vendor.rilcommon.rc \
init.vendor.sensors.rc
@ -73,7 +76,8 @@ PRODUCT_PACKAGES += \
libqcomvoiceprocessing \
libqcompostprocbundle \
libvolumelistener \
audio_parameter_service.samsung_sm7125
libprocessgroup.vendor \
libqti_vndfwk_detect.vendor_32
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/audio/configs/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
@ -100,14 +104,20 @@ PRODUCT_PACKAGES += \
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.5-service.samsung \
android.hardware.camera.provider-service_32.samsung \
libgrallocusage.vendor \
libutilscallstack.vendor \
vendor.qti.hardware.camera.device@1.0.vendor \
libui_shim.vendor
# CAS
PRODUCT_PACKAGES += \
android.hardware.cas@1.2-service
# Charger
PRODUCT_PACKAGES += \
charger_res_images_vendor
# Control groups and task profiles
PRODUCT_COPY_FILES += \
system/core/libprocessgroup/profiles/cgroups_30.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \
@ -133,20 +143,16 @@ PRODUCT_PACKAGES += \
android.hardware.graphics.mapper@3.0-impl-qti-display \
android.hardware.graphics.mapper@4.0-impl-qti-display \
vendor.qti.hardware.display.allocator-service \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
android.hardware.renderscript@1.0-impl \
libtinyxml \
libtinyxml2 \
hwcomposer.atoll \
gralloc.atoll \
memtrack.atoll \
hwcomposer.qcom \
libqdMetaData \
libdisplayconfig.qti \
vendor.qti.hardware.display.mapper@1.1.vendor \
vendor.qti.hardware.display.mapper@2.0.vendor \
vendor.qti.hardware.display.mapper@3.0.vendor \
vendor.qti.hardware.display.mapper@4.0.vendor \
vendor.qti.hardware.memtrack-service \
vendor.display.config@2.0.vendor \
AdvancedDisplay
@ -158,6 +164,7 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
android.hardware.drm-service.clearkey \
libdrmclearkeyplugin \
libcrypto_shim.vendor \
android.hardware.drm@1.3.vendor
# Fingerprint
@ -195,11 +202,10 @@ PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0-impl \
android.hardware.gatekeeper@1.0-service
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/init/android.hardware.gatekeeper@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.gatekeeper@1.0-service.rc
# Health
PRODUCT_PACKAGES += \
android.hardware.health-service.samsung \
android.hardware.health-service.samsung-recovery \
android.hardware.health@2.1.vendor
# HIDL
@ -230,20 +236,14 @@ PRODUCT_PACKAGES += \
# Media
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_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_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.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_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
$(COMMON_PATH)/configs/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(COMMON_PATH)/configs/media/system_properties.xml:$(TARGET_COPY_OUT_VENDOR)/etc/system_properties.xml \
$(COMMON_PATH)/configs/media/media_codecs_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml \
$(COMMON_PATH)/configs/media/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
$(COMMON_PATH)/configs/media/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \
$(COMMON_PATH)/configs/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
# microG
-include vendor/microg/vendor_microg.mk
# Minijail
PRODUCT_PACKAGES += \
libavservices_minijail \
@ -264,19 +264,6 @@ PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/nfc/libnfc-sec-vendor.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-sec-vendor.conf \
$(COMMON_PATH)/configs/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nci.conf
# OMX
PRODUCT_PACKAGES += \
libmm-omxcore \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw
# Perf
PRODUCT_PACKAGES += \
vendor.qti.hardware.perf@2.2.vendor
@ -331,16 +318,17 @@ PRODUCT_COPY_FILES += \
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service.samsung-libperfmgr \
android.hardware.power-service.pixel-libperfmgr \
android.hardware.power@1.2.vendor
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
# QMI
# QCOM
PRODUCT_PACKAGES += \
libjson \
libprotobuf-cpp-lite-3.9.1-vendorcompat
libprotobuf-cpp-lite-3.9.1-vendorcompat \
libsqlite.vendor
# Radio
PRODUCT_PACKAGES += \
@ -358,7 +346,9 @@ PRODUCT_PACKAGES += \
libxml2 \
librilutils \
librmnetctl \
secril_config_svc
secril_config_svc \
sehradiomanager \
libjsoncpp.vendor
# Sensors
PRODUCT_PACKAGES += \
@ -373,7 +363,8 @@ PRODUCT_COPY_FILES += \
# Thermal
PRODUCT_PACKAGES += \
android.hardware.thermal@2.0.vendor \
android.frameworks.cameraservice.service@2.1.vendor
android.frameworks.cameraservice.service@2.1.vendor \
libcamera_metadata.vendor
# Touch features
PRODUCT_PACKAGES += \
@ -383,9 +374,12 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
vndservicemanager
# Update
PRODUCT_SOONG_NAMESPACES += bootable/deprecated-ota
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-service-qti \
android.hardware.usb-service.qti \
init.qcom.usb.rc \
init.qcom.usb.sh
@ -407,9 +401,6 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
libcrypto-v33
PRODUCT_COPY_FILES += \
prebuilts/vndk/v30/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libutils-v30.so
# WiFi
PRODUCT_PACKAGES += \
android.hardware.wifi-service \
@ -445,8 +436,7 @@ PRODUCT_SOONG_NAMESPACES += \
$(COMMON_PATH) \
hardware/google/interfaces \
hardware/google/pixel \
hardware/samsung \
hardware/samsung/aidl/power-libperfmgr
hardware/samsung
# Prop files
TARGET_SYSTEM_PROP += $(COMMON_PATH)/system.prop

@ -1,88 +0,0 @@
<!--
Input:
compatibility_matrix.xml
device_compatibility_matrix.xml
device_compatibility_matrix.xml
vendor.samsung.frameworks.codecsolution-matrix.xml
-->
<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="aidl" optional="true">
<name>vendor.samsung.frameworks.codecsolution</name>
<interface>
<name>ISehCodecSolution</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

@ -1,456 +1,4 @@
<compatibility-matrix version="2.0" type="framework">
<hal format="hidl" optional="true">
<name>android.hardware.automotive.evs</name>
<version>1.1</version>
<interface>
<name>IEvsEnumerator</name>
<instance>EvsEnumeratorHw</instance>
<instance>EvsEnumeratorHw-Mock</instance>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.gnss</name>
<version>1.0-1</version>
<version>2.0-1</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
<instance>gnss_vendor</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.keymaster</name>
<version>4.0</version>
<interface>
<name>IKeymasterDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.media.c2</name>
<version>1.0</version>
<interface>
<name>IComponentStore</name>
<instance>default</instance>
<instance>software</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.nfc</name>
<version>1.0</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.nfc</name>
<version>1.2</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.nfc</name>
<version>1.2</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.0-4</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
<interface>
<name>ISap</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.2</version>
<interface>
<name>ISap</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1.0-1</version>
<interface>
<name>IRadioConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.vibrator</name>
<version>1.3</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.power</name>
<interface>
<name>IPower</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.wifi.supplicant</name>
<version>1.0-4</version>
<interface>
<name>ISupplicant</name>
<instance>default</instance>
<instance>wigigp2p</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>com.qualcomm.qti.dpm.api</name>
<version>1.0</version>
<interface>
<name>IdpmQmi</name>
<instance>dpmQmiService</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>com.qualcomm.qti.wifidisplayhal</name>
<version>1.0</version>
<interface>
<name>IDSManager</name>
<instance>wifidisplaydshal</instance>
</interface>
<interface>
<name>IHDCPSession</name>
<instance>wifidisplayhdcphal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>com.quicinc.cne.api</name>
<version>1.0-1</version>
<interface>
<name>IApiService</name>
<instance>cnd</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>com.quicinc.cne.server</name>
<version>2.0-2</version>
<interface>
<name>IServer</name>
<instance>cnd</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.display.color</name>
<version>1.0-5</version>
<interface>
<name>IDisplayColor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.display.config</name>
<version>1.0-15</version>
<version>2.0</version>
<interface>
<name>IDisplayConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.display.postproc</name>
<version>1.0</version>
<interface>
<name>IDisplayPostproc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.automotive.qcarcam</name>
<version>1.0</version>
<interface>
<name>IQcarCamera</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.data.factory</name>
<version>1.0</version>
<version>2.0-1</version>
<interface>
<name>IFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.diaghal</name>
<version>1.0</version>
<interface>
<name>Idiag</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.esepowermanager</name>
<version>1.0-1</version>
<interface>
<name>IEsePowerManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.gnss</name>
<version>1.0-2</version>
<version>2.0-1</version>
<version>3.0</version>
<version>4.0</version>
<interface>
<name>ILocHidlGnss</name>
<instance>gnss_vendor</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.alarm</name>
<version>1.0</version>
<interface>
<name>IAlarm</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.audiohalext</name>
<version>1.0</version>
<interface>
<name>IAudioHalExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.btconfigstore</name>
<version>1.0</version>
<version>2.0</version>
<interface>
<name>IBTConfigStore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.cacert</name>
<version>1.0</version>
<interface>
<name>IService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.camera.postproc</name>
<version>1.0</version>
<interface>
<name>IPostProcService</name>
<instance>camerapostprocservice</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.capabilityconfigstore</name>
<version>1.0</version>
<interface>
<name>ICapabilityConfigStore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.cryptfshw</name>
<version>1.0</version>
<interface>
<name>ICryptfsHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.cvp</name>
<version>1.0</version>
<interface>
<name>ICvp</name>
<instance>cvphalservice</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.data.connection</name>
<version>1.0-1</version>
<interface>
<name>IDataConnection</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.data.latency</name>
<version>1.0</version>
<interface>
<name>ILinkLatency</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.debugutils</name>
<version>1.0</version>
<interface>
<name>IDebugUtils</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.display.allocator</name>
<version>1.0</version>
<version>3.0</version>
<version>4.0</version>
<interface>
<name>IQtiAllocator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.display.composer</name>
<version>2.0-1</version>
<version>3.0</version>
<interface>
<name>IQtiComposer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.display.demura</name>
<version>1.0</version>
<interface>
<name>IDemuraFileFinder</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.display.mapper</name>
<version>2.0</version>
<version>3.0</version>
<version>4.0</version>
<interface>
<name>IQtiMapper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.dsp</name>
<version>1.0</version>
<interface>
<name>IDspService</name>
<instance>dspservice</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.eid</name>
<version>1.0</version>
<interface>
<name>IEid</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.embmssl</name>
<version>1.0-1</version>
<interface>
<name>IEmbms</name>
<instance>embmsslServer0</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.factory</name>
<version>1.0-1</version>
<interface>
<name>IFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.fingerprint</name>
<version>1.0</version>
<interface>
<name>IQtiExtendedFingerprint</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.fm</name>
<version>1.0</version>
<interface>
<name>IFmHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.fstman</name>
<version>1.0</version>
<interface>
<name>IFstManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.improvetouch.blobmanager</name>
<version>1.0</version>
<interface>
<name>IBlobManager</name>
<instance>BlobManagerService</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.improvetouch.gesturemanager</name>
<version>1.0</version>
<interface>
<name>IGestureManager</name>
<instance>GestureManagerService</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.improvetouch.touchcompanion</name>
<version>1.0</version>
<interface>
<name>ITouchCompanion</name>
<instance>TouchCompanionService</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.iop</name>
<version>2.0</version>
<interface>
<name>IIop</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.limits</name>
<version>1.0</version>
<interface>
<name>ILimits</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.perf</name>
<version>2.0-2</version>
<interface>
<name>IPerf</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qccsyshal</name>
<version>1.0</version>
@ -459,400 +7,4 @@
<instance>qccsyshal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qccvndhal</name>
<version>1.0</version>
<interface>
<name>IQccvndhal</name>
<instance>qccvndhal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qconfig</name>
<version>1.0</version>
<interface>
<name>IQConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qdutils_disp</name>
<version>1.0</version>
<interface>
<name>IQdutilsDisp</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qseecom</name>
<version>1.0</version>
<interface>
<name>IQSEECom</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qteeconnector</name>
<version>1.0</version>
<interface>
<name>IAppConnector</name>
<instance>default</instance>
</interface>
<interface>
<name>IGPAppConnector</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.am</name>
<version>1.0</version>
<interface>
<name>IQcRilAudio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.ims</name>
<version>1.0-6</version>
<interface>
<name>IImsRadio</name>
<instance>imsradio0</instance>
<instance>imsradio1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.internal.deviceinfo</name>
<version>1.0</version>
<interface>
<name>IDeviceInfo</name>
<instance>deviceinfo</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.lpa</name>
<version>1.0-1</version>
<interface>
<name>IUimLpa</name>
<instance>UimLpa0</instance>
<instance>UimLpa1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.qcrilhook</name>
<version>1.0</version>
<interface>
<name>IQtiOemHook</name>
<instance>oemhook0</instance>
<instance>oemhook1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.qtiradio</name>
<version>1.0</version>
<version>2.0-4</version>
<interface>
<name>IQtiRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.uim</name>
<version>1.1-2</version>
<interface>
<name>IUim</name>
<instance>Uim0</instance>
<instance>Uim1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.uim_remote_client</name>
<version>1.0</version>
<interface>
<name>IUimRemoteServiceClient</name>
<instance>uimRemoteClient0</instance>
<instance>uimRemoteClient1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.radio.uim_remote_server</name>
<version>1.0</version>
<interface>
<name>IUimRemoteServiceServer</name>
<instance>uimRemoteServer0</instance>
<instance>uimRemoteServer1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.scve.objecttracker</name>
<version>1.0</version>
<interface>
<name>IObjectTracker</name>
<instance>objectTracker</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.scve.panorama</name>
<version>1.0</version>
<interface>
<name>IPanoramaStitching</name>
<instance>panoStitching</instance>
</interface>
<interface>
<name>IPanoramaTracking</name>
<instance>panoTracking</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.seccam</name>
<version>1.0</version>
<interface>
<name>ISecCam</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.secureprocessor.device</name>
<version>1.0</version>
<interface>
<name>ISecureProcessor</name>
<instance>qti-tee</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.sensorscalibrate</name>
<version>1.0</version>
<interface>
<name>ISensorsCalibrate</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.tui_comm</name>
<version>1.0</version>
<interface>
<name>ITuiComm</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.vpp</name>
<version>1.1-3</version>
<version>2.0</version>
<interface>
<name>IHidlVppService</name>
<instance>vppService</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifi.hostapd</name>
<version>1.0-3</version>
<interface>
<name>IHostapdVendor</name>
<instance>default</instance>
<instance>wigighostapd</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.wifi.hostapd</name>
<version>1.0-3</version>
<interface>
<name>IHostapd</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.wifi</name>
<version>1.0-5</version>
<interface>
<name>IWifi</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifi.supplicant</name>
<version>2.0-3</version>
<interface>
<name>ISupplicantVendor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifi.wifilearner</name>
<version>1.0</version>
<interface>
<name>IWifiStats</name>
<instance>wifiStats</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifidisplaysession</name>
<version>1.0</version>
<interface>
<name>IWifiDisplaySession</name>
<instance>wifidisplaysession</instance>
</interface>
<interface>
<name>IWifiDisplaySessionAudioTrack</name>
<instance>wifidisplaysessionaudiotrack</instance>
</interface>
<interface>
<name>IWifiDisplaySessionImageTrack</name>
<instance>wifidisplaysessionimagetrack</instance>
</interface>
<interface>
<name>IWifiDisplaySessionVideoTrack</name>
<instance>wifidisplaysessionvideotrack</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wigig.netperftuner</name>
<version>1.0</version>
<interface>
<name>INetPerfTuner</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wigig.supptunnel</name>
<version>1.0</version>
<interface>
<name>ISuppTunnelProvider</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wipower</name>
<version>1.0</version>
<interface>
<name>IWipower</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.memory.pasrmanager</name>
<version>1.0</version>
<interface>
<name>IPasrManager</name>
<instance>pasrhal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.power.pasrmanager</name>
<version>1.0</version>
<interface>
<name>IPasrManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.qspmhal</name>
<version>1.0</version>
<interface>
<name>IQspmhal</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.spu</name>
<version>1.0-1</version>
<interface>
<name>ISPUManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.voiceprint</name>
<version>1.0</version>
<interface>
<name>IQtiVoicePrintService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.audio</name>
<version>1.0</version>
<interface>
<name>ISehDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.bluetooth</name>
<version>2.0</version>
<interface>
<name>ISehBluetooth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.bluetooth.a2dp</name>
<version>1.0</version>
<interface>
<name>ISehBluetoothAudioOffload</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.camera.provider</name>
<version>4.0</version>
<interface>
<name>ISehCameraProvider</name>
<instance>legacy/0</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.gnss</name>
<version>2.0</version>
<interface>
<name>ISehGnss</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.health</name>
<version>2.0</version>
<interface>
<name>ISehHealth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.radio</name>
<version>2.1</version>
<interface>
<name>ISehRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.radio.bridge</name>
<version>2.0</version>
<interface>
<name>ISehBridge</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.radio.channel</name>
<version>2.0</version>
<interface>
<name>ISehChannel</name>
<instance>epdgd</instance>
<instance>epdgd2</instance>
<instance>imsd</instance>
<instance>imsd2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.samsung.hardware.thermal</name>
<version>1.0</version>
<interface>
<name>ISehThermal</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

@ -1,8 +0,0 @@
service vendor.gatekeeper-1-0 /vendor/bin/hw/android.hardware.gatekeeper@1.0-service
interface android.hardware.gatekeeper@1.0::IGatekeeper default
class hal
user system
group system 5678
on post-fs-data
mkdir /data/vendor/gatekeeper 0770 system system

@ -50,29 +50,9 @@
<fqname>@4.0::IKeymasterDevice/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
<name>android.hardware.media.c2</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOmx</name>
<instance>default</instance>
</interface>
<interface>
<name>IOmxStore</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IOmx/default</fqname>
<fqname>@1.0::IOmxStore/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IMemtrack/default</fqname>
<fqname>@1.0::IComponentStore/default</fqname>
</hal>
<hal format="hidl" override="true">
<name>android.hardware.radio</name>
@ -100,16 +80,6 @@
<name>android.hardware.radio.deprecated</name>
<transport>hwbinder</transport>
</hal>
<hal format="hidl">
<name>android.hardware.renderscript</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IDevice/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
@ -423,14 +393,14 @@
<hal format="hidl">
<name>vendor.samsung.hardware.radio</name>
<transport>hwbinder</transport>
<version>2.1</version>
<version>2.2</version>
<interface>
<name>ISehRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
<fqname>@2.1::ISehRadio/slot1</fqname>
<fqname>@2.1::ISehRadio/slot2</fqname>
<fqname>@2.2::ISehRadio/slot1</fqname>
<fqname>@2.2::ISehRadio/slot2</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.radio.bridge</name>

@ -1,418 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-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.
-->
<!--
SM6150 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 |
| h263-sw | 864 480 30 16 48600 |
| mpeg2 | 1920 1088 30 40 244800 |
|_____________|_________________________________________|
SM6150 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 |
|__________|_________________________________________|
SM6150 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>
<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="36" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="can-swap-width-height" required="true" />
<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="36" max="979200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-3840x2160" value="30" />
</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="36" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<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" />
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc.cq" 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="512x512" max="512x512" />
<Limit name="frame-rate" range="1-20" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<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" />
<Feature name="bitrate-modes" value="CQ" />
</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="96x96" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="can-swap-width-height" required="true" />
<Attribute name="software-codec" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-864x480" value="30" />
<Limit name="performance-point-720x480" value="30" />
<Limit name="performance-point-720x576" value="25" />
</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="96x96" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="48600" />
<Limit name="bitrate" range="1-8000000" />
<Limit name="frame-rate" range="1-30" />
<Attribute name="software-codec" />
<Feature name="can-swap-width-height" required="true" />
<Attribute name="software-codec" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-864x480" value="30" />
<Limit name="performance-point-720x480" value="30" />
<Limit name="performance-point-720x576" value="25" />
</MediaCodec>
<MediaCodec name="c2.android.av1.encoder" type="video/av01" enabled="false" minsdk="34" update="true">
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="2x2" max="720x720" />
<Limit name="block-count" range="1-1350" /> <!-- max 720x480 -->
<Limit name="bitrate" range="1-5000000" />
<Limit name="quality" range="0-100" default="80" />
<Limit name="complexity" range="0-5" default="0" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
<Attribute name="software-codec" />
</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="36" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<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.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="36" 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" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-3840x2160" value="30" />
</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="36" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" 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="36" 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" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" 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="36" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</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="36" max="979200" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" 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="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="36" 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" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-3840x2160" value="30" />
</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="36" max="979200" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<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="36" 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" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-3840x2160" value="30" />
</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="96x96" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="48600" />
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-864x480" value="30" />
<Limit name="performance-point-720x480" value="30" />
<Limit name="performance-point-720x576" value="25" />
</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="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus" update="true" rank="100"/>
</Decoders>
<Include href="media_codecs_google_video.xml" />
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
</MediaCodecs>

@ -0,0 +1,272 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2019 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2018 The Linux Foundation. All rights reserved.
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.
-->
<!--
7150 Non-Secure decoder capabilities
_________________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_________________________________________|
| h264 | 4096 2160 24 100 829440 |
| hevc | 4096 2160 24 100 829440 |
| vp8 | 1920 1080 60 100 489600 |
| vp9 | 4096 2160 24 100 829440 |
|_____________|_________________________________________|
7150 Secure decoder capabilities
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 3840 2160 30 40 972000 |
| vp9 | 3840 2160 30 40 972000 |
| hevc | 3840 2160 30 40 972000 |
|__________|_________________________________________|
7150 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 |
| vp8 | 1920 1080 60 40 489600 |
|__________|_________________________________________|
-->
<Included>
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Decoders>
<!-- C2 decoders -->
<MediaCodec name="c2.qti.avc.decoder" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="36-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" />
<!-- Limit name="performance-point-720x480" value="240" /> -->
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.secure" type="video/avc" >
<Alias name="OMX.qcom.video.decoder.avc.secure" />
<Limit name="size" min="96x96" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc" />
<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="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" /> -->
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.secure" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.secure" />
<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-40000000" />
<Limit name="frame-rate" range="1-60" />
<Limit name="performance-point-4096x2160" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="c2.qti.vp8.decoder" type="video/x-vnd.on2.vp8" >
<Alias name="OMX.qcom.video.decoder.vp8" />
<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="489600" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-120" />
<!-- <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" /> -->
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9" />
<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" />
<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" />
<!-- <Limit name="performance-point-720x480" value="240" /> -->
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" value="1" />
<Limit name="concurrent-instances" max="6" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
<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-40000000" />
<Limit name="frame-rate" range="1-60" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-1920x1080" value="60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="can-swap-width-height" value="1" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
</Decoders>
<Encoders>
<!-- C2 encoders -->
<MediaCodec name="c2.qti.avc.encoder" type="video/avc">
<Alias name="OMX.qcom.video.encoder.avc" />
<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="complexity" range="0-100" default="100" />
<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" /> -->
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="can-swap-width-height" value="1" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc" />
<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" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<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" /> -->
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
<Feature name="can-swap-width-height" value="1" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc">
<Limit name="size" min="512x512" max="512x512" />
<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-160000000" />
<Limit name="frame-rate" range="1-20" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Limit name="performance-point-512x512" value="480" />
<Feature name="bitrate-modes" value="CQ" />
</MediaCodec>
<MediaCodec name="c2.qti.heic.encoder" type="image/vnd.android.heic">
<Limit name="size" min="512x512" max="4096x2160" />
<Limit name="block-count" range="1024-138240" /> <!--max-spatial: 8192x4320 -->
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="frame-rate" range="1-20" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="6" />
<Limit name="quality" range="0-100" default="80" />
<!-- <Limit name="performance-point-7680x4320" value="3" /> -->
<Limit name="performance-point-4096x2160" value="12" />
<!-- <Limit name="performance-point-4096x2160" value="12" /> -->
<!-- <Limit name="performance-point-3840x2160" value="12" /> -->
<Limit name="performance-point-1920x1080" value="40" />
<Limit name="performance-point-1920x1080" value="30" />
<Limit name="performance-point-1280x720" value="80" />
<Limit name="performance-point-1280x720" value="60" />
<Limit name="performance-point-720x480" value="240" />
<Feature name="bitrate-modes" value="CQ" />
</MediaCodec>
<MediaCodec name="c2.qti.vp8.encoder" type="video/x-vnd.on2.vp8">
<Alias name="OMX.qcom.video.encoder.vp8" />
<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="489600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="complexity" range="0-100" default="100" />
<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="60" />
<Limit name="performance-point-1280x720" value="120" />
<!-- <Limit name="performance-point-720x480" value="240" /> -->
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="can-swap-width-height" value="1" />
</MediaCodec>
</Encoders>
</Included>

@ -1,271 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2015-2017, 2019 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">
<!-- measured [234-262] lower-upper [63-667] median * 1.5 [372] -->
<Limit name="measured-frame-rate-320x240" range="138-303" />
<!-- measured [132-224] lower-upper [45-479] median * 1.5 [267] -->
<Limit name="measured-frame-rate-720x480" range="99-218" />
<!-- measured [68-94] lower-upper [21-219] median * 1.5 [122] -->
<Limit name="measured-frame-rate-1280x720" range="45-100" />
<!-- measured [67-81] lower-upper [19-199] median * 1.5 [111] -->
<Limit name="measured-frame-rate-1920x1080" range="41-91" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
<!-- measured [251-271] lower-upper [66-704] median * 1.5 [392] -->
<Limit name="measured-frame-rate-176x144" range="145-320" />
<!-- measured [94-96] lower-upper [24-256] median * 1.5 [142] -->
<Limit name="measured-frame-rate-352x288" range="53-116" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
<!-- measured [226-233] lower-upper [58-618] median * 1.5 [344] -->
<Limit name="measured-frame-rate-320x240" range="128-281" />
<!-- measured [140-171] lower-upper [39-419] median * 1.5 [233] -->
<Limit name="measured-frame-rate-720x480" range="87-191" />
<!-- measured [68-90] lower-upper [20-215] median * 1.5 [119] -->
<Limit name="measured-frame-rate-1280x720" range="44-98" />
<!-- measured [61-68] lower-upper [16-174] median * 1.5 [97] -->
<Limit name="measured-frame-rate-1920x1080" range="36-79" />
<!-- measured [28-35] lower-upper [8-86] median * 1.5 [47] -->
<Limit name="measured-frame-rate-3840x2160" range="18-39" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
<!-- measured [226-233] lower-upper [58-618] median * 1.5 [344] -->
<Limit name="measured-frame-rate-176x144" range="128-281" />
<!-- measured [82-83] lower-upper [21-223] median * 1.5 [124] -->
<Limit name="measured-frame-rate-352x288" range="46-101" />
<!-- measured [42-42] lower-upper [11-114] median * 1.5 [63] -->
<Limit name="measured-frame-rate-640x480" range="24-52" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<!-- measured [239-245] lower-upper [61-653] median * 1.5 [364] -->
<Limit name="measured-frame-rate-320x180" range="135-297" />
<!-- measured [171-193] lower-upper [46-491] median * 1.5 [273] -->
<Limit name="measured-frame-rate-640x360" range="101-223" />
<!-- measured [68-93] lower-upper [21-218] median * 1.5 [121] -->
<Limit name="measured-frame-rate-1280x720" range="45-99" />
<!-- measured [69-72] lower-upper [18-191] median * 1.5 [106] -->
<Limit name="measured-frame-rate-1920x1080" range="39-87" />
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<!-- measured [289-344] lower-upper [80-852] median * 1.5 [475] -->
<Limit name="measured-frame-rate-320x240" range="176-387" />
<!-- measured [118-121] lower-upper [30-323] median * 1.5 [180] -->
<Limit name="measured-frame-rate-720x480" range="67-147" />
<!-- measured [73-78] lower-upper [19-205] median * 1.5 [114] -->
<Limit name="measured-frame-rate-1280x720" range="42-93" />
<!-- measured [42-44] lower-upper [11-117] median * 1.5 [65] -->
<Limit name="measured-frame-rate-1920x1080" range="24-53" />
</MediaCodec>
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<!-- measured [270-281] lower-upper [70-742] median * 1.5 [414] -->
<Limit name="measured-frame-rate-176x144" range="153-337" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<!-- measured [40-43] lower-upper [11-113] median * 1.5 [63] -->
<Limit name="measured-frame-rate-320x240" range="23-51" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured [264-274] lower-upper [68-725] median * 1.5 [404] -->
<Limit name="measured-frame-rate-176x144" range="150-329" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured [169-201] lower-upper [47-500] median * 1.5 [278] -->
<Limit name="measured-frame-rate-320x180" range="103-227" />
<!-- measured [140-141] lower-upper [36-379] median * 1.5 [211] -->
<Limit name="measured-frame-rate-640x360" range="78-172" />
<!-- measured [38-39] lower-upper [10-104] median * 1.5 [58] -->
<Limit name="measured-frame-rate-1280x720" range="22-47" />
<!-- measured [34-35] lower-upper [9-93] median * 1.5 [51] -->
<Limit name="measured-frame-rate-1920x1080" range="19-42" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true" variant="!slow-cpu">
<!-- measured [208-241] lower-upper [57-605] median * 1.5 [337] -->
<Limit name="measured-frame-rate-320x180" range="125-275" />
<!-- measured [83-96] lower-upper [23-242] median * 1.5 [134] -->
<Limit name="measured-frame-rate-640x360" range="50-110" />
<!-- measured [21-25] lower-upper [6-63] median * 1.5 [34] -->
<Limit name="measured-frame-rate-1280x720" range="13-28" />
</MediaCodec>
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
<!-- measured [196-255] lower-upper [57-607] median * 1.5 [338] -->
<Limit name="measured-frame-rate-320x240" range="125-276" />
<!-- measured [56-61] lower-upper [15-159] median * 1.5 [88] -->
<Limit name="measured-frame-rate-720x480" range="33-72" />
<!-- measured [22-23] lower-upper [6-63] median * 1.5 [35] -->
<Limit name="measured-frame-rate-1280x720" range="13-29" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<!-- measured [387-465] lower-upper [108-1147] median * 1.5 [639] -->
<Limit name="measured-frame-rate-320x240" range="237-521" />
<!-- measured [369-447] lower-upper [103-1098] median * 1.5 [612] -->
<Limit name="measured-frame-rate-720x480" range="227-499" />
<!-- measured [296-316] lower-upper [77-824] median * 1.5 [459] -->
<Limit name="measured-frame-rate-1280x720" range="170-375" />
<!-- measured [167-167] lower-upper [42-450] median * 1.5 [250] -->
<Limit name="measured-frame-rate-1920x1080" range="93-205" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
<!-- measured [414-554] lower-upper [122-1302] median * 1.5 [726] -->
<Limit name="measured-frame-rate-352x288" range="269-592" />
<!-- measured [420-552] lower-upper [123-1308] median * 1.5 [729] -->
<Limit name="measured-frame-rate-640x360" range="270-595" />
<!-- measured [385-535] lower-upper [116-1238] median * 1.5 [690] -->
<Limit name="measured-frame-rate-720x480" range="256-563" />
<!-- measured [310-320] lower-upper [80-849] median * 1.5 [473] -->
<Limit name="measured-frame-rate-1280x720" range="175-386" />
<!-- measured [174-174] lower-upper [44-469] median * 1.5 [261] -->
<Limit name="measured-frame-rate-1920x1080" range="97-213" />
<!-- measured [50-50] lower-upper [13-137] median * 1.5 [76] -->
<Limit name="measured-frame-rate-3840x2160" range="28-62" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<!-- measured [444-629] lower-upper [136-1444] median * 1.5 [805] -->
<Limit name="measured-frame-rate-320x180" range="298-656" />
<!-- measured [418-594] lower-upper [128-1362] median * 1.5 [759] -->
<Limit name="measured-frame-rate-640x360" range="281-619" />
<!-- measured [330-342] lower-upper [85-905] median * 1.5 [505] -->
<Limit name="measured-frame-rate-1280x720" range="187-412" />
<!-- measured [186-186] lower-upper [47-501] median * 1.5 [279] -->
<Limit name="measured-frame-rate-1920x1080" range="104-228" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<!-- measured [411-499] lower-upper [115-1225] median * 1.5 [683] -->
<Limit name="measured-frame-rate-320x180" range="253-557" />
<!-- measured [368-384] lower-upper [95-1012] median * 1.5 [564] -->
<Limit name="measured-frame-rate-640x360" range="209-460" />
<!-- measured [153-153] lower-upper [39-412] median * 1.5 [229] -->
<Limit name="measured-frame-rate-1280x720" range="85-187" />
<!-- measured [94-94] lower-upper [24-255] median * 1.5 [142] -->
<Limit name="measured-frame-rate-1920x1080" range="53-116" />
<!-- measured [21-21] lower-upper [6-59] median * 1.5 [32] -->
<Limit name="measured-frame-rate-3840x2160" range="12-27" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
<!-- measured [606-638] lower-upper [157-1674] median * 1.5 [933] -->
<Limit name="measured-frame-rate-176x144" range="346-761" />
<!-- measured [307-507] lower-upper [103-1096] median * 1.5 [611] -->
<Limit name="measured-frame-rate-352x288" range="226-498" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
<!-- measured [544-547] lower-upper [138-1467] median * 1.5 [818] -->
<Limit name="measured-frame-rate-176x144" range="303-667" />
<!-- measured [250-439] lower-upper [87-928] median * 1.5 [517] -->
<Limit name="measured-frame-rate-480x360" range="192-422" />
<!-- measured [211-213] lower-upper [54-571] median * 1.5 [318] -->
<Limit name="measured-frame-rate-1280x720" range="118-260" />
</MediaCodec>
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
<!-- measured [150-255] lower-upper [51-545] median * 1.5 [303] -->
<Limit name="measured-frame-rate-352x288" range="113-248" />
<!-- measured [90-154] lower-upper [31-330] median * 1.5 [184] -->
<Limit name="measured-frame-rate-640x360" range="68-150" />
<!-- measured [80-112] lower-upper [24-260] median * 1.5 [144] -->
<Limit name="measured-frame-rate-720x480" range="54-118" />
<!-- measured [55-58] lower-upper [14-152] median * 1.5 [85] -->
<Limit name="measured-frame-rate-1280x720" range="31-69" />
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<!-- measured [163-169] lower-upper [42-448] median * 1.5 [249] -->
<Limit name="measured-frame-rate-320x240" range="93-204" />
<!-- measured [71-72] lower-upper [18-193] median * 1.5 [107] -->
<Limit name="measured-frame-rate-720x480" range="40-88" />
<!-- measured [30-30] lower-upper [8-82] median * 1.5 [45] -->
<Limit name="measured-frame-rate-1280x720" range="17-37" />
<!-- measured [16-16] lower-upper [4-45] median * 1.5 [24] -->
<Limit name="measured-frame-rate-1920x1080" range="9-20" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<!-- measured [389-860] lower-upper [158-1681] median * 1.5 [937] -->
<Limit name="measured-frame-rate-176x144" range="347-764" />
<!-- measured [298-690] lower-upper [125-1330] median * 1.5 [742] -->
<Limit name="measured-frame-rate-352x288" range="275-605" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<!-- measured [168-186] lower-upper [45-477] median * 1.5 [265] -->
<Limit name="measured-frame-rate-352x288" range="99-217" />
<!-- measured [112-112] lower-upper [28-303] median * 1.5 [169] -->
<Limit name="measured-frame-rate-640x360" range="63-138" />
<!-- measured [110-139] lower-upper [32-337] median * 1.5 [187] -->
<Limit name="measured-frame-rate-720x480" range="70-153" />
<!-- measured [61-101] lower-upper [21-218] median * 1.5 [121] -->
<Limit name="measured-frame-rate-1280x720" range="45-99" />
<!-- measured [44-53] lower-upper [12-132] median * 1.5 [73] -->
<Limit name="measured-frame-rate-1920x1080" range="27-60" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<!-- measured [392-558] lower-upper [120-1279] median * 1.5 [713] -->
<Limit name="measured-frame-rate-176x144" range="264-581" />
<!-- measured [338-728] lower-upper [135-1435] median * 1.5 [800] -->
<Limit name="measured-frame-rate-480x360" range="296-652" />
<!-- measured [95-328] lower-upper [54-570] median * 1.5 [317] -->
<Limit name="measured-frame-rate-1280x720" range="118-259" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured [241-787] lower-upper [130-1383] median * 1.5 [771] -->
<Limit name="measured-frame-rate-320x180" range="286-628" />
<!-- measured [98-358] lower-upper [58-615] median * 1.5 [343] -->
<Limit name="measured-frame-rate-640x360" range="127-280" />
<!-- measured [53-97] lower-upper [19-203] median * 1.5 [113] -->
<Limit name="measured-frame-rate-1280x720" range="42-92" />
<!-- measured [39-39] lower-upper [10-105] median * 1.5 [58] -->
<Limit name="measured-frame-rate-1920x1080" range="22-48" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured [232-640] lower-upper [110-1174] median * 1.5 [654] -->
<Limit name="measured-frame-rate-320x180" range="242-533" />
<!-- measured [107-321] lower-upper [54-577] median * 1.5 [321] -->
<Limit name="measured-frame-rate-640x360" range="119-262" />
<!-- measured [61-121] lower-upper [23-246] median * 1.5 [137] -->
<Limit name="measured-frame-rate-1280x720" range="51-112" />
<!-- measured [42-53] lower-upper [12-130] median * 1.5 [72] -->
<Limit name="measured-frame-rate-1920x1080" range="27-59" />
</MediaCodec>
<MediaCodec name="c2.sec.mpeg4.decoder" type="video/mp4v-es" update="true">
<!-- measured [314-444] lower-upper [96-1021] median * 1.5 [569] -->
<Limit name="measured-frame-rate-176x144" range="211-464" />
<!-- measured [241-497] lower-upper [93-994] median * 1.5 [554] -->
<Limit name="measured-frame-rate-480x360" range="205-452" />
<!-- measured [193-257] lower-upper [57-606] median * 1.5 [338] -->
<Limit name="measured-frame-rate-1280x720" range="125-275" />
</MediaCodec>
<MediaCodec name="OMX.SEC.avc.sw.dec" type="video/avc" update="true">
<!-- measured [191-489] lower-upper [86-915] median * 1.5 [510] -->
<Limit name="measured-frame-rate-320x240" range="189-416" />
<!-- measured [185-188] lower-upper [47-502] median * 1.5 [280] -->
<Limit name="measured-frame-rate-720x480" range="104-228" />
<!-- measured [71-71] lower-upper [18-192] median * 1.5 [107] -->
<Limit name="measured-frame-rate-1280x720" range="40-87" />
<!-- measured [31-31] lower-upper [8-84] median * 1.5 [46] -->
<Limit name="measured-frame-rate-1920x1080" range="17-38" />
</MediaCodec>
<MediaCodec name="OMX.SEC.mpeg4.sw.dec" type="video/mp4v-es" update="true">
<!-- measured [723-1721] lower-upper [309-3288] median * 1.5 [1834] -->
<Limit name="measured-frame-rate-176x144" range="679-1495" />
<!-- measured [1156-1188] lower-upper [296-3153] median * 1.5 [1758] -->
<Limit name="measured-frame-rate-480x360" range="651-1433" />
</MediaCodec>
</Decoders>
</MediaCodecs>

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2019 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
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.
-->
<MediaCodecs>
<Decoders>
<MediaCodec name="c2.qti.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="569-573" /> <!-- N=108 v98%=1.1 -->
<Limit name="measured-frame-rate-720x480" range="554-554" /> <!-- N=108 v98%=1.0 -->
<!-- measured 90%:322-323 med:322 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="322-322" /> <!-- v90%=1.0 -->
<!-- measured 90%:151-152 med:152 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="151-152" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="609-612" /> <!-- N=108 v98%=1.1 -->
<!-- measured 90%:551-606 med:590 N=8 -->
<Limit name="measured-frame-rate-640x360" range="578-578" /> <!-- v90%=1.0 -->
<!-- measured 90%:574-616 med:590 N=8 -->
<Limit name="measured-frame-rate-720x480" range="589-595" /> <!-- v90%=1.0 -->
<!-- measured 90%:416-420 med:419 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="418-418" /> <!-- v90%=1.0 -->
<!-- measured 90%:233-235 med:234 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="234-234" /> <!-- v90%=1.0 -->
<!-- measured 90%:62-63 med:63 N=8 -->
<Limit name="measured-frame-rate-3840x2160" range="62-63" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.qti.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="633-638" /> <!-- N=108 v98%=1.1 -->
<Limit name="measured-frame-rate-640x360" range="606-606" /> <!-- N=108 v98%=1.1 -->
<!-- measured 90%:331-333 med:332 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="331-332" /> <!-- v90%=1.0 -->
<!-- measured 90%:146-147 med:147 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="146-147" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="626-631" /> <!-- N=108 v98%=1.1 -->
<Limit name="measured-frame-rate-640x360" range="557-560" /> <!-- N=108 v98%=1.0 -->
<!-- measured 90%:317-319 med:318 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="317-318" /> <!-- v90%=1.0 -->
<!-- measured 90%:225-228 med:227 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="226-227" /> <!-- v90%=1.0 -->
<!-- measured 90%:59-60 med:60 N=8 -->
<Limit name="measured-frame-rate-3840x2160" range="59-60" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="482-482" /> <!-- N=108 v98%=1.0 -->
<Limit name="measured-frame-rate-720x480" range="162-162" /> <!-- N=108 v98%=1.0 -->
<Limit name="measured-frame-rate-1280x720" range="62-63" /> <!-- N=108 v98%=1.0 -->
<!-- measured 90%:26-28 med:27 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="27-27" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<!-- measured 90%:481-504 med:493 N=8 -->
<Limit name="measured-frame-rate-352x288" range="492-492" /> <!-- v90%=1.0 -->
<!-- measured 90%:269-279 med:271 N=8 -->
<Limit name="measured-frame-rate-640x360" range="271-274" /> <!-- v90%=1.0 -->
<!-- measured 90%:254-264 med:261 N=8 -->
<Limit name="measured-frame-rate-720x480" range="259-259" /> <!-- v90%=1.0 -->
<!-- measured 90%:103-106 med:105 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="105-105" /> <!-- v90%=1.0 -->
<!-- measured 90%:55-57 med:56 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="56-56" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:796-809 med:798 N=8 -->
<Limit name="measured-frame-rate-320x180" range="798-802" /> <!-- v90%=1.0 -->
<!-- measured 90%:389-395 med:392 N=8 -->
<Limit name="measured-frame-rate-640x360" range="392-392" /> <!-- v90%=1.0 -->
<!-- measured 90%:42-44 med:43 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="43-43" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 90%:657-680 med:672 N=8 -->
<Limit name="measured-frame-rate-320x180" range="669-669" /> <!-- v90%=1.0 -->
<!-- measured 90%:218-226 med:221 N=8 -->
<Limit name="measured-frame-rate-640x360" range="220-222" /> <!-- v90%=1.0 -->
<!-- measured 90%:85-87 med:86 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="86-86" /> <!-- v90%=1.0 -->
<!-- measured 90%:51-53 med:52 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="52-52" /> <!-- v90%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<!-- measured 90%:761-885 med:853 N=8 -->
<Limit name="measured-frame-rate-176x144" range="821-821" /> <!-- v90%=1.1 -->
<!-- measured 98%:656-1034 med:723 SLOW -->
<Limit name="measured-frame-rate-352x288" range="723-824" /> <!-- N=80 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<!-- measured 90%:1697-1993 med:1825 N=8 -->
<Limit name="measured-frame-rate-176x144" range="1824-1839" /> <!-- v90%=1.1 -->
<Limit name="measured-frame-rate-480x360" range="970-1455" />
<Limit name="measured-frame-rate-1280x720" range="368-552" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="c2.qti.avc.encoder" type="video/avc" update="true">
<!-- measured 90%:378-394 med:383 N=8 -->
<Limit name="measured-frame-rate-320x240" range="382-386" /> <!-- v90%=1.0 -->
<!-- measured 90%:165-204 med:190 N=8 -->
<Limit name="measured-frame-rate-720x480" range="183-183" /> <!-- v90%=1.1 -->
<!-- measured 90%:65-104 med:69 SLOW N=8 -->
<Limit name="measured-frame-rate-1280x720" range="68-82" /> <!-- v90%=1.3 -->
<!-- measured 90%:49-85 med:58 SLOW N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="57-64" /> <!-- v90%=1.3 -->
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc" update="true">
<!-- measured 90%:401-421 med:404 N=8 -->
<Limit name="measured-frame-rate-320x240" range="403-411" /> <!-- v90%=1.0 -->
<!-- measured 90%:164-213 med:186 N=8 -->
<Limit name="measured-frame-rate-720x480" range="185-187" /> <!-- v90%=1.1 -->
<Limit name="measured-frame-rate-1280x720" range="84-84" /> <!-- N=108 v98%=1.3 -->
<!-- measured 90%:32-67 med:51 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="47-47" /> <!-- v90%=1.4 -->
<!-- measured 90%:20-29 med:21 SLOW N=8 -->
<Limit name="measured-frame-rate-3840x2160" range="20-24" /> <!-- v90%=1.2 -->
</MediaCodec>
<MediaCodec name="c2.qti.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:471-503 med:479 N=8 -->
<Limit name="measured-frame-rate-320x180" range="478-486" /> <!-- v90%=1.0 -->
<!-- measured 90%:225-252 med:229 N=8 -->
<Limit name="measured-frame-rate-640x360" range="228-238" /> <!-- v90%=1.1 -->
<!-- measured 90%:66-102 med:101 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="82-82" /> <!-- v90%=1.2 -->
<!-- measured 90%:41-46 med:45 N=8 -->
<Limit name="measured-frame-rate-1920x1080" range="43-43" /> <!-- v90%=1.1 -->
</MediaCodec>
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<!-- measured 90%:659-756 med:693 N=8 -->
<Limit name="measured-frame-rate-176x144" range="693-706" /> <!-- v90%=1.1 -->
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<!-- measured 90%:342-372 med:354 N=8 -->
<Limit name="measured-frame-rate-320x240" range="354-356" /> <!-- v90%=1.0 -->
<!-- measured 90%:126-131 med:128 N=8 -->
<Limit name="measured-frame-rate-720x480" range="127-128" /> <!-- v90%=1.0 -->
<!-- measured 90%:70-83 med:71 N=8 -->
<Limit name="measured-frame-rate-1280x720" range="71-76" /> <!-- v90%=1.1 -->
<!-- measured 90%:31-49 med:48 N=10 -->
<Limit name="measured-frame-rate-1920x1080" range="40-40" /> <!-- v90%=1.2 -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="59-60" /> <!-- N=108 v98%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="27-37" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured 90%:597-731 med:672 N=8 -->
<Limit name="measured-frame-rate-176x144" range="661-661" /> <!-- v90%=1.1 -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="249-255" /> <!-- N=108 v98%=1.1 -->
<Limit name="measured-frame-rate-640x360" range="135-135" /> <!-- N=108 v98%=1.0 -->
<Limit name="measured-frame-rate-1280x720" range="37-37" /> <!-- N=108 v98%=1.0 -->
<Limit name="measured-frame-rate-1920x1080" range="31-31" /> <!-- N=108 v98%=1.0 -->
</MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="192-288" />
<!-- measured 95%:54-67 med:61/61 N=36 -->
<Limit name="measured-frame-rate-640x360" range="61-61" /> <!-- v95%=1.1 -->
<!-- measured 95%:16-26 med:20/20 N=32 -->
<Limit name="measured-frame-rate-1280x720" range="20-20" /> <!-- v95%=1.3 -->
</MediaCodec>
</Encoders>
</MediaCodecs>

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Copyright (c) 2017, 2019 The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<configs>
<property name="vidc_dec_log_in" value="0"/>
<property name="vidc_dec_log_out" value="0"/>
<property name="vidc_dec_hfr_fps" value="0"/>
<property name="vidc_enc_log_in" value="0"/>
<property name="vidc_enc_log_out" value="0"/>
<property name="vidc_enc_csc_custom_matrix" value="0"/>
<!-- Buffer size : internal : 30 MB (30 X 1), output : 50 MB (3.125 X 16) -->
<property name="vidc_dec_sec_prefetch_size_internal" value="31457280"/>
<property name="vidc_dec_sec_prefetch_size_output" value="3276800"/>
<!-- Bitmask for arb mode: 1: AVC, 2: HEVC, 4: MPEG2 -->
<property name="vidc_dec_arb_mode_override" value="7"/>
<!-- Bitmask for linear color: 1: 8-bit, 2: 10-bit, 3: 8&10 bit -->
<property name="vidc_enc_linear_color_format" value="3"/>
<property name="vidc_perf_control_enable" value="1"/>
</configs>

@ -173,8 +173,8 @@ gSetRxChainmask1x1=1
# Scan Timing Parameters
# gPassiveMaxChannelTime=110
# gPassiveMinChannelTime=60
gActiveMaxChannelTime=40
gActiveMinChannelTime=20
gActiveMaxChannelTime=80
gActiveMinChannelTime=60
#If set to 0, MCC is not allowed.
gEnableMCCMode=1

@ -1,4 +1,6 @@
p2p_disabled=1
update_config=1
pmf=1
tdls_external_control=1
tdls_external_control=1
#PMK Lifetime value 259200 = 72 hours
dot11RSNAConfigPMKLifetime=259200

@ -1,8 +1,7 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2020 The LineageOS Project
#
# SPDX-FileCopyrightText: 2016 The CyanogenMod Project
# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
@ -25,31 +24,36 @@ source "${HELPER}"
CLEAN_VENDOR=true
ONLY_COMMON=
ONLY_FIRMWARE=
ONLY_TARGET=
KANG=
SECTION=
while [ "${#}" -gt 0 ]; do
case "${1}" in
--only-common )
ONLY_COMMON=true
;;
--only-target )
ONLY_TARGET=true
;;
-n | --no-cleanup )
CLEAN_VENDOR=false
;;
-k | --kang )
KANG="--kang"
;;
-s | --section )
SECTION="${2}"; shift
CLEAN_VENDOR=false
;;
* )
SRC="${1}"
;;
--only-common)
ONLY_COMMON=true
;;
--only-firmware)
ONLY_FIRMWARE=true
;;
--only-target)
ONLY_TARGET=true
;;
-n | --no-cleanup)
CLEAN_VENDOR=false
;;
-k | --kang)
KANG="--kang"
;;
-s | --section)
SECTION="${2}"
shift
CLEAN_VENDOR=false
;;
*)
SRC="${1}"
;;
esac
shift
done
@ -61,35 +65,56 @@ fi
function blob_fixup() {
case "${1}" in
vendor/lib64/libsec-ril.so|vendor/lib64/libsec-ril-dsds.so)
[ "$2" = "" ] && return 0
# Replace SlotID prop
sed -i 's/ril.dds.call.slotid/vendor.calls.slotid/g' "${2}"
# Pass an empty value to SecRil::RequestComplete in OnGetSmscAddressDone
xxd -p -c0 "${2}" | sed "s/600e40f9820c805224008052e10315aae30314aa/600e40f9820c805224008052e10315aa030080d2/g" | xxd -r -p > "${2}".patched
sed -i 's/ril.dds.call.ongoing/vendor.calls.slot_id/g' "${2}"
# Pass an empty value to SecRil::RequestComplete in OnGetSmscAddressDone (mov x3,x20 -> mov,x3,#0x0)
xxd -p -c0 "${2}" | sed "s/600e40f9820c805224008052e10315aa080040f9e30314aa/600e40f9820c805224008052e10315aa080040f9030080d2/g" | xxd -r -p > "${2}".patched
mv "${2}".patched "${2}"
;;
vendor/lib64/hw/android.hardware.health@2.0-impl-2.1-samsung.so)
# Replace libutils with vndk30 libutils
"${PATCHELF}" --replace-needed libutils.so libutils-v30.so "${2}"
;;
vendor/lib64/hw/gatekeeper.mdfpp.so|vendor/lib64/libskeymaster4device.so)
vendor/lib64/hw/gatekeeper.mdfpp.so|vendor/lib64/libskeymaster4device.so|vendor/lib64/libkeymaster_helper.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "libcrypto.so" "libcrypto-v33.so" "${2}"
;;
vendor/lib/libwvhidl.so|vendor/lib/mediadrm/libwvdrmengine.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --add-needed "libcrypto_shim.so" "${2}"
;;
vendor/lib/unihal_main@2.15.so|vendor/lib64/unihal_main@2.15.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --add-needed "libui_shim.so" "${2}"
;;
*)
return 1
;;
esac
return 0
}
function blob_fixup_dry() {
blob_fixup "$1" ""
}
if [ -z "${ONLY_TARGET}" ]; then
if [ -z "${ONLY_FIRMWARE}" ] && [ -z "${ONLY_TARGET}" ]; then
# Initialize the helper for common device
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
setup_vendor "${DEVICE_COMMON}" "${VENDOR_COMMON:-$VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
source "${MY_DIR}/../${DEVICE}/extract-files.sh"
source "${MY_DIR}/../../${VENDOR}/${DEVICE}/extract-files.sh"
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/../${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
if [ -z "${ONLY_FIRMWARE}" ]; then
extract "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
if [ -z "${SECTION}" ] && [ -f "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-firmware.txt" ]; then
extract_firmware "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-firmware.txt" "${SRC}"
fi
fi
"${MY_DIR}/setup-makefiles.sh"

@ -1,10 +0,0 @@
cc_library_static {
name: "libudfps_extension.sm7125",
srcs: ["UdfpsExtension.cpp"],
include_dirs: [
"frameworks/native/services/surfaceflinger/CompositionEngine/include"
],
header_libs: [
"generated_kernel_headers",
],
}

@ -1,33 +0,0 @@
/*
* Copyright (C) 2022 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <compositionengine/UdfpsExtension.h>
#include <drm/sde_drm.h>
uint32_t getUdfpsZOrder(uint32_t z, bool touched) {
if (touched) {
z |= FOD_PRESSED_LAYER_ZORDER;
}
return z;
}
uint64_t getUdfpsUsageBits(uint64_t usageBits, bool touched) {
if (touched) {
usageBits |= 0x400000000LL;
}
return usageBits;
}

@ -28,4 +28,7 @@
<!-- Threshold in micro watts above which a charger is rated as "fast"; 2.16A @ 5V -->
<integer name="config_chargingFastThreshold">10800000</integer>
<!-- Charging info current divider, if needed -->
<integer name="config_currentInfoDivider" translatable="false">1</integer>
</resources>

@ -21,5 +21,10 @@
<!-- Bottom margin size when fingerprint in display is active -->
<dimen name="keyguard_indication_margin_bottom">20dp</dimen>
<!-- Location on the screen of the center of the physical power button. This is a reasonable
default that should be overridden by device-specific overlays. -->
<dimen name="physical_power_button_center_screen_location_y">980px</dimen>
<dimen name="rounded_corner_content_padding">8dp</dimen>
</resources>

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-FileCopyrightText: 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<adaptive-icon
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt">
<background>
<!--
Base
-->
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="#ff2A3232" android:pathData="M0,0h108v108h-108z" />
</vector>
</background>
<foreground>
<layer-list>
<item>
<!--
Hour hand
-->
<rotate android:fromDegrees="300.0" android:toDegrees="5300.0" android:pivotX="50.0%" android:pivotY="50.0%">
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="@android:color/white" android:pathData="M54.0001 32C53.4338 32 52.9609 32.4318 52.9096 32.9959L51.2717 51.0123C51.2697 51.0348 51.2679 51.0572 51.2664 51.0796C51.319 51.0305 51.3731 50.9825 51.4289 50.9358C52.9967 49.6202 55.2776 49.7129 56.7338 51.0794C56.7323 51.0571 56.7306 51.0347 56.7285 51.0123L55.0907 32.9959C55.0394 32.4318 54.5665 32 54.0001 32Z" />
<path android:fillColor="#FF98A7A7" android:pathData="M56 54C56 55.1046 55.1046 56 54 56C52.8954 56 52 55.1046 52 54C52 52.8954 52.8954 52 54 52C55.1046 52 56 52.8954 56 54Z" />
</vector>
</rotate>
</item>
<item>
<!--
Minute hand
-->
<rotate android:fromDegrees="60.0" android:toDegrees="60060.0" android:pivotX="50.0%" android:pivotY="50.0%">
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="@android:color/white" android:pathData="M54 25.9996C53.4365 25.9996 52.9689 26.435 52.9287 26.997L51.2137 51.0072C51.2106 51.0502 51.2085 51.093 51.2074 51.1356C52.6604 49.7155 54.9821 49.6022 56.5712 50.9356C56.648 51.0001 56.7218 51.0668 56.7925 51.1356C56.7914 51.093 56.7893 51.0502 56.7862 51.0072L55.0712 26.997C55.0311 26.435 54.5634 25.9996 54 25.9996Z" />
<path android:fillColor="#FF98A7A7" android:pathData="M56 54C56 55.1046 55.1046 56 54 56C52.8954 56 52 55.1046 52 54C52 52.8954 52.8954 52 54 52C55.1046 52 56 52.8954 56 54Z" />
</vector>
</rotate>
</item>
<item>
<!--
Second hand
-->
<rotate android:fromDegrees="180.0" android:toDegrees="6180.0" android:pivotX="50.0%" android:pivotY="50.0%">
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:strokeColor="#FFFFD250" android:strokeWidth="2" android:strokeLineCap="round" android:pathData="M54 29L54 54" />
<path android:fillColor="#FFF09F38" android:pathData="M60 54C60 57.3137 57.3137 60 54 60C50.6863 60 48 57.3137 48 54C48 50.6863 50.6863 48 54 48C57.3137 48 60 50.6863 60 54Z" />
</vector>
</rotate>
</item>
<item>
<!--
Finish
-->
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path
android:pathData="M28.54,28.54m-72,0a72,72 0,1 1,144 0a72,72 0,1 1,-144 0"
android:fillAlpha="0.6">
<aapt:attr name="android:fillColor">
<gradient
android:gradientRadius="72"
android:centerX="28.54"
android:centerY="28.54"
android:type="radial">
<item android:offset="0" android:color="#19FFFFFF"/>
<item android:offset="1" android:color="#00FFFFFF"/>
</gradient>
</aapt:attr>
</path>
</vector>
</item>
</layer-list>
</foreground>
<monochrome>
<layer-list>
<item>
<!--
Hour hand
-->
<rotate android:fromDegrees="300.0" android:toDegrees="5300.0" android:pivotX="50.0%" android:pivotY="50.0%">
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="@android:color/white" android:pathData="M53.9998 35C53.4334 35 52.9605 35.4318 52.9092 35.9959L52.0718 45.2071C53.3459 44.9289 54.6633 44.9322 55.9278 45.2085L55.0903 35.9959C55.039 35.4318 54.5661 35 53.9998 35Z" />
</vector>
</rotate>
</item>
<item>
<!--
Minute hand
-->
<rotate android:fromDegrees="60.0" android:toDegrees="60060.0" android:pivotX="50.0%" android:pivotY="50.0%">
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="@android:color/white" android:pathData="M54.0002 29.0002C53.4368 29.0002 52.9691 29.4356 52.929 29.9976L51.8386 45.2629C53.2509 44.9147 54.7373 44.9103 56.1617 45.2615L55.0714 29.9976C55.0313 29.4356 54.5636 29.0002 54.0002 29.0002Z" />
</vector>
</rotate>
</item>
<item>
<!--
Second hand
-->
<rotate android:fromDegrees="180.0" android:toDegrees="6180.0" android:pivotX="50.0%" android:pivotY="50.0%">
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="@android:color/white" android:pathData="M53 45.0552C53.3283 45.0189 53.662 45.0002 54 45.0002C54.338 45.0002 54.6717 45.0189 55 45.0552L55 32.0002C55 31.448 54.5523 31.0002 54 31.0002C53.4477 31.0002 53 31.448 53 32.0002L53 45.0552Z" />
</vector>
</rotate>
</item>
<item>
<!--
Center
-->
<vector android:height="108.0dp" android:width="108.0dp" android:viewportWidth="108.0" android:viewportHeight="108.0">
<path android:fillColor="@android:color/white" android:pathData="M60 54C60 57.3137 57.3137 60 54 60C50.6863 60 48 57.3137 48 54C48 50.6863 50.6863 48 54 48C57.3137 48 60 50.6863 60 54Z" />
</vector>
</item>
</layer-list>
</monochrome>
</adaptive-icon>

@ -1,4 +1,4 @@
# All blobs are from A525FXXU6EWL3 (U), unless pinned
# All blobs are from A525FXXUAFXL2 (U), unless pinned
# ACDB
vendor/lib/libacdb-fts.so
@ -27,8 +27,6 @@ vendor/lib64/libsnpe_dsp_domains_v2.so
vendor/lib64/libSNPE.so
vendor/lib64/libsnpe_wrapper.so
vendor/lib/rfsa/adsp/libdspCV_skel.so
vendor/lib/rfsa/adsp/libsns_device_mode_skel.so
vendor/lib64/rfsa/adsp/libsns_device_mode_skel.so
vendor/lib/rfsa/adsp/libhexagon_nn_skel.so
vendor/lib/rfsa/adsp/libscveT2T_skel.so
vendor/lib/rfsa/adsp/libVC1Dec.so
@ -36,12 +34,12 @@ vendor/lib/rfsa/adsp/libVC1DecDsp_skel.so
vendor/lib/rfsa/adsp/libscveObjectSegmentation_skel.so
vendor/lib/rfsa/adsp/libfastcvadsp.so
vendor/lib/rfsa/adsp/libfastcvdsp_skel.so
vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so
vendor/lib64/rfsa/adsp/libsns_low_lat_stream_skel.so
vendor/lib/rfsa/adsp/libdsp_streamer_skel.so
vendor/lib/rfsa/adsp/libcamera_nn_skel.so
vendor/lib/rfsa/adsp/libcvpdsp_skel.so
vendor/lib/rfsa/adsp/libapps_mem_heap.so
vendor/lib/libc++_shared.so
vendor/lib64/libc++_shared.so
# Audio
vendor/lib/btaudio_offload_if.so
@ -55,11 +53,8 @@ vendor/lib/libaudio_log_utils.so
vendor/lib/libaudioconfigstore.so
vendor/lib/vendor.qti.hardware.audiohalext@1.0.so
vendor/lib64/btaudio_offload_if.so
vendor/lib64/libaudioparsers.so
vendor/lib64/hw/vendor.qti.hardware.audiohalext@1.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib64/libsecaudioinfo.so
vendor/lib64/libsecaudiocoreutils.so
vendor/lib64/libaudioconfigstore.so
vendor/lib64/vendor.qti.hardware.audiohalext@1.0.so
vendor/lib/libsamsungVoipResampler.so
@ -67,26 +62,23 @@ vendor/lib/lib_soundaliveresampler.so
vendor/lib/lib_SoundAlive_SRC384_ver320.so
vendor/lib/librecordalive.so
vendor/lib/lib_SamsungRec_07010.so
vendor/lib/libexthwplugin.so
vendor/lib/libsndmonitor.so
vendor/lib/libbatterylistener.so
vendor/lib/liba2dpoffload.so
vendor/lib/libexthwplugin.so;MODULE_SUFFIX=_vendor
vendor/lib/libsndmonitor.so;MODULE_SUFFIX=_vendor
vendor/lib/libbatterylistener.so;MODULE_SUFFIX=_vendor
vendor/lib/liba2dpoffload.so;MODULE_SUFFIX=_vendor
vendor/lib/libadm.so
vendor/lib/libcomprcapture.so
vendor/lib/libhdmiedid.so
vendor/lib/libhdmipassthru.so
vendor/lib/libhfp.so
vendor/lib/libcomprcapture.so;MODULE_SUFFIX=_vendor
vendor/lib/libhdmiedid.so;MODULE_SUFFIX=_vendor
vendor/lib/libhdmipassthru.so;MODULE_SUFFIX=_vendor
vendor/lib/libhfp.so;MODULE_SUFFIX=_vendor
vendor/lib/libqtigef.so
vendor/lib64/libqtigef.so
vendor/lib/libcirrusspkrprot.so
vendor/lib/libcirrusspkrprot.so;MODULE_SUFFIX=_vendor
vendor/lib/libsurround_3mic_proc.so
vendor/lib/libdrc.so
vendor/lib/libspkrprot.so
vendor/lib/libspkrprot.so;MODULE_SUFFIX=_vendor
vendor/lib/libprofileparamstorage.so
vendor/lib/libspatializerparamstorage.so
vendor/lib64/libspatializerparamstorage.so
vendor/lib/spatializer-aidl-V1-cpp.so
vendor/lib64/spatializer-aidl-V1-cpp.so
# Soundtrigger
vendor/lib/hw/sound_trigger.primary.atoll.so
@ -110,12 +102,6 @@ vendor/lib/soundfx/libqcreverb.so
vendor/lib/soundfx/libshoebox.so
vendor/lib/soundfx/libqcbassboost.so
vendor/lib/soundfx/libswspatializer.so
vendor/lib64/soundfx/libqcvirt.so
vendor/lib64/soundfx/libasphere.so
vendor/lib64/soundfx/libqcreverb.so
vendor/lib64/soundfx/libshoebox.so
vendor/lib64/soundfx/libqcbassboost.so
vendor/lib64/soundfx/libswspatializer.so
system_ext/etc/permissions/audiosphere.xml
system_ext/framework/audiosphere.jar
@ -149,8 +135,6 @@ vendor/lib/libidl.so
vendor/lib64/libidl.so
vendor/lib/com.qualcomm.qti.ant@1.0.so
vendor/lib64/com.qualcomm.qti.ant@1.0.so
vendor/lib/libqti_vndfwk_detect.so
vendor/lib64/libqti_vndfwk_detect.so
vendor/lib/libbthost_if.so
vendor/lib64/libbthost_if.so
@ -164,41 +148,18 @@ vendor/firmware/apnv11.bin
# Camera
vendor/lib/libsensorndkbridge.so
vendor/lib64/libsensorndkbridge.so
vendor/lib/libsuper_night_interface.so
vendor/lib/libcamera_nn_stub.so
vendor/lib/libscveCommon.so
vendor/lib/libuniplugin.so
vendor/lib/libIDDQD_core.so
vendor/lib/libHprFace_GAE_api.camera.samsung.so
vendor/lib/libcamxswprocessalgo.so
vendor/lib/libscveObjectTracker.so
vendor/lib/libsmartfocusengine.so
vendor/lib/libjpegQtable_interface.so
vendor/lib/libdualcam_refocus_image.so
vendor/lib/libimagecodec_native.quram.so
vendor/lib/libarcsoft_stereodistancemeasure.so
vendor/lib/libHandGesture.camera.samsung.so
vendor/lib/libhand_interaction.uniplugin@1.0.so
vendor/lib/libremosaic_daemon.so
vendor/lib/libarcsoft_picportrait_video.so
vendor/lib/libcamxstatscore.so
vendor/lib/libexifa.camera.samsung.so
vendor/lib/libcamxfdengine.so
vendor/lib/libarcsoft_super_night_raw.so
vendor/lib/libjpegencoder_sw.unifunc.so
vendor/lib/hw/camera.unihal.default.so
vendor/lib/libbeautyshot.arcsoft.so
vendor/lib/libvideobeauty.arcsoft.so
vendor/lib/libHpr_RecGAE_cvFeature_v1.0.camera.samsung.so
vendor/lib/libdualcapture.so
vendor/lib/libfocuspeaking.so
vendor/lib/libscaler_hw.unifunc.so
vendor/lib/libFace_Landmark_API.camera.samsung.so
vendor/lib/libOpenCv.camera.samsung.so
vendor/lib/libscveCommon_stub.so
vendor/lib/libqcwrappercommon.so
vendor/lib/libscveObjectSegmentation_stub.so
vendor/lib/libsocial_image_enhancement.uniplugin@1.0.so
vendor/lib/libcamxfdalgov8.so
vendor/lib/camera/com.samsung.sensormodule.8_1_lsi_s5kgd2_full.bin
vendor/lib/camera/com.samsung.sensormodule.8_0_sony_imx616_full.bin
@ -262,84 +223,31 @@ vendor/lib/camera/com.samsung.sensormodule.2_0_lsi_s5k3l6.bin
vendor/lib/camera/com.samsung.sensor.s5k3l6.so
vendor/lib/camera/com.samsung.tuned.lsi_gc5035_macro.bin
vendor/lib/camera/com.samsung.sensor.hi1336.so
vendor/lib/libsegmentationeffect.uniplugin@1.0.so
vendor/lib/libcamxfdalgov7.so
vendor/lib/libscveObjectTracker_stub.so
vendor/lib/libBeauty_v4.camera.samsung.so
vendor/lib/libhypermotion_core.so
vendor/lib/libsensorlistener.so
vendor/lib/libvideobeauty_interface.so
vendor/lib/libpadm.so
vendor/lib/libfocuspeaking_interface.so
vendor/lib/libimage_enhancement.arcsoft.so
vendor/lib/libhigh_dynamic_range.so
vendor/lib/libvideobeauty.uniplugin@1.0.so
vendor/lib/libllhdr_interface.so
vendor/lib/libscveObjectSegmentation.so
vendor/lib/libdualcam_optical_zoom.so
vendor/lib/libmfhdr_interface.so
vendor/lib/liblivefocus_capture_engine.so
vendor/lib/libsmartfocus_interface.so
vendor/lib/libdualcam_optical_zoom_control.so
vendor/lib/libswregistrationalgo.so
vendor/lib/libhandgesture.arcsoft.so
vendor/lib/libcom.qti.chinodeutils.so
vendor/lib/liblivefocus_preview_engine.so
vendor/lib/libDualCamBokehCapture.camera.samsung.so
vendor/lib/libhypermotion_interface.so
vendor/lib/liblivefocus_preview_interface.so
vendor/lib/libhigh_dynamic_range_bokeh.so
vendor/lib/liblivefocus_capture_interface.so
vendor/lib/libswldc_capture_core.camera.samsung.so
vendor/lib/libIDDQD_interface.so
vendor/lib/libSEF.quram.so
vendor/lib/libcamxtintlessalgo.so
vendor/lib/libmpbase.so
vendor/lib/libLocalTM_capture_core.camera.samsung.so
vendor/lib/liblow_light_hdr.so
vendor/lib/libdualcam_refocus_video.so
vendor/lib/libvdis_core.so
vendor/lib/unihal_main@2.15.so
vendor/lib/unihal_cutils@2.15.so
vendor/lib/unihal_uniplugin@1.0.so
vendor/lib/libface_landmark.arcsoft.so
vendor/lib64/libsuper_night_interface.so
vendor/lib64/libcamera_nn_stub.so
vendor/lib64/libscveCommon.so
vendor/lib64/libformatConverter.unifunc.so
vendor/lib64/libuniplugin.so
vendor/lib64/libIDDQD_core.so
vendor/lib64/libHprFace_GAE_api.camera.samsung.so
vendor/lib64/libcamxswprocessalgo.so
vendor/lib64/libscveObjectTracker.so
vendor/lib64/libsmartfocusengine.so
vendor/lib64/libjpegQtable_interface.so
vendor/lib64/libdualcam_refocus_image.so
vendor/lib64/libimagecodec_native.quram.so
vendor/lib64/libHandGesture.camera.samsung.so
vendor/lib64/libhand_interaction.uniplugin@1.0.so
vendor/lib64/libremosaic_daemon.so
vendor/lib64/libarcsoft_picportrait_video.so
vendor/lib64/libDLInterface.camera.samsung.so
vendor/lib64/libcamxstatscore.so
vendor/lib64/libexifa.camera.samsung.so
vendor/lib64/libcamxfdengine.so
vendor/lib64/libarcsoft_super_night_raw.so
vendor/lib64/libjpegencoder_sw.unifunc.so
vendor/lib64/hw/camera.unihal.default.so
vendor/lib64/libbeautyshot.arcsoft.so
vendor/lib64/libvideobeauty.arcsoft.so
vendor/lib64/libHpr_RecGAE_cvFeature_v1.0.camera.samsung.so
vendor/lib64/libremosaiclib.so
vendor/lib64/libdualcapture.so
vendor/lib64/libfocuspeaking.so
vendor/lib64/libscaler_hw.unifunc.so
vendor/lib64/libFace_Landmark_API.camera.samsung.so
vendor/lib64/libOpenCv.camera.samsung.so
vendor/lib64/libscveCommon_stub.so
vendor/lib64/libqcwrappercommon.so
vendor/lib64/libscveObjectSegmentation_stub.so
vendor/lib64/libsocial_image_enhancement.uniplugin@1.0.so
vendor/lib64/libcamxfdalgov8.so
vendor/lib64/camera/com.samsung.sensormodule.8_1_lsi_s5kgd2_full.bin
vendor/lib64/camera/com.samsung.sensormodule.8_0_sony_imx616_full.bin
@ -396,47 +304,18 @@ vendor/lib64/camera/com.samsung.sensor.s5k3l6.so
vendor/lib64/camera/com.samsung.tuned.lsi_gc5035_macro.bin
vendor/lib64/camera/com.qti.eeprom.sec2qcconversion.so
vendor/lib64/camera/com.samsung.sensor.hi1336.so
vendor/lib64/libsegmentationeffect.uniplugin@1.0.so
vendor/lib64/libLocalTM_wrapper.camera.samsung.so
vendor/lib64/libcamxfdalgov7.so
vendor/lib64/libscveObjectTracker_stub.so
vendor/lib64/libBeauty_v4.camera.samsung.so
vendor/lib64/libhypermotion_core.so
vendor/lib64/libsensorlistener.so
vendor/lib64/libvideobeauty_interface.so
vendor/lib64/libpadm.so
vendor/lib64/libfocuspeaking_interface.so
vendor/lib64/libimage_enhancement.arcsoft.so
vendor/lib64/libhigh_dynamic_range.so
vendor/lib64/libvideobeauty.uniplugin@1.0.so
vendor/lib64/libllhdr_interface.so
vendor/lib64/libscveObjectSegmentation.so
vendor/lib64/libdualcam_optical_zoom.so
vendor/lib64/libmfhdr_interface.so
vendor/lib64/liblivefocus_capture_engine.so
vendor/lib64/libsmartfocus_interface.so
vendor/lib64/libdualcam_optical_zoom_control.so
vendor/lib64/libswregistrationalgo.so
vendor/lib64/libhandgesture.arcsoft.so
vendor/lib64/libcom.qti.chinodeutils.so
vendor/lib64/liblivefocus_preview_engine.so
vendor/lib64/libDualCamBokehCapture.camera.samsung.so
vendor/lib64/libhypermotion_interface.so
vendor/lib64/liblivefocus_preview_interface.so
vendor/lib64/libhigh_dynamic_range_bokeh.so
vendor/lib64/liblivefocus_capture_interface.so
vendor/lib64/libswldc_capture_core.camera.samsung.so
vendor/lib64/libIDDQD_interface.so
vendor/lib64/libSEF.quram.so
vendor/lib64/libcamxtintlessalgo.so
vendor/lib64/libmpbase.so
vendor/lib64/libLocalTM_capture_core.camera.samsung.so
vendor/lib64/liblow_light_hdr.so
vendor/lib64/libvdis_core.so
vendor/lib64/unihal_main@2.15.so
vendor/lib64/unihal_cutils@2.15.so
vendor/lib64/unihal_uniplugin@1.0.so
vendor/lib64/libface_landmark.arcsoft.so
vendor/firmware/CAMERA_ICP.elf
# Charger
@ -496,8 +375,8 @@ vendor/lib/liboemcrypto.so
vendor/lib64/liboemcrypto.so
vendor/lib/libtrustedapploader.so
vendor/lib64/libtrustedapploader.so
vendor/lib/libwvhidl.so
vendor/lib/mediadrm/libwvdrmengine.so
vendor/lib/libwvhidl.so|751ddea8edd3d50e010a62cdfa3ed86293f6ce7c
vendor/lib/mediadrm/libwvdrmengine.so|5ecaaa08b83aed7b9368fd47bf4066a00a92d939
# Feature
vendor/lib/libsemnativecarrierfeature.so
@ -508,9 +387,9 @@ vendor/lib/libsecnativefeature.so
vendor/lib64/libsecnativefeature.so
# FM
vendor/lib/vendor.qti.hardware.fm@1.0.so
vendor/lib/vendor.qti.hardware.fm@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib/hw/vendor.qti.hardware.fm@1.0-impl.so
vendor/lib64/vendor.qti.hardware.fm@1.0.so
vendor/lib64/vendor.qti.hardware.fm@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/hw/vendor.qti.hardware.fm@1.0-impl.so
system_ext/lib/fm_helium.so
system_ext/lib64/fm_helium.so
@ -526,7 +405,7 @@ vendor/lib64/hw/gatekeeper.mdfpp.so|5a16f16d118cdaa990b6b7924b94c419d366d624
-vendor/app/CACertService/CACertService.apk
vendor/lib/libjnihelper.so
vendor/lib64/libjnihelper.so
vendor/bin/lowi-server
vendor/bin/lowi-server;DISABLE_DEPS
vendor/bin/xtra-daemon
vendor/bin/loc_launcher
vendor/bin/hw/android.hardware.gnss@2.1-service-qti
@ -679,18 +558,18 @@ vendor/lib64/libqseed3.so
vendor/lib/hw/vulkan.adreno.so
vendor/lib64/hw/vulkan.adreno.so
# Adreno
vendor/lib/egl/libq3dtools_adreno.so
vendor/lib64/egl/libq3dtools_adreno.so
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so
vendor/lib/egl/libq3dtools_esx.so
vendor/lib64/egl/libq3dtools_esx.so
vendor/lib/egl/libEGL_adreno.so
vendor/lib64/egl/libEGL_adreno.so
vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so
vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so
vendor/lib/egl/eglSubDriverAndroid.so
vendor/lib64/egl/eglSubDriverAndroid.so
vendor/lib/egl/libGLESv1_CM_adreno.so
vendor/lib64/egl/libGLESv1_CM_adreno.so
vendor/lib/egl/libGLESv2_adreno.so
vendor/lib64/egl/libGLESv2_adreno.so
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so
vendor/lib/libadreno_utils.so
vendor/lib64/libadreno_utils.so
@ -701,15 +580,6 @@ vendor/firmware/a630_gmu.bin
vendor/firmware/a630_sqe.fw
vendor/firmware/a640_gmu.bin
# Health
vendor/bin/hw/android.hardware.health@2.1-service-samsung
vendor/etc/init/android.hardware.health@2.1-service-samsung.rc
-vendor/etc/vintf/manifest/android.hardware.health@2.1-samsung.xml
vendor/lib/hw/android.hardware.health@2.0-impl-2.1-samsung.so
vendor/lib64/hw/android.hardware.health@2.0-impl-2.1-samsung.so|c2fe30e1db417bf33262f4a126f4ee496499958a
vendor/lib/vendor.samsung.hardware.health@2.0.so
vendor/lib64/vendor.samsung.hardware.health@2.0.so
# HotwordEnrollment
-product/priv-app/HotwordEnrollmentOKGoogleEx3HEXAGON/HotwordEnrollmentOKGoogleEx3HEXAGON.apk
-product/priv-app/HotwordEnrollmentXGoogleEx3HEXAGON/HotwordEnrollmentXGoogleEx3HEXAGON.apk
@ -747,6 +617,13 @@ vendor/lib64/libreffeature.so
vendor/lib64/liblearningmodule.so
vendor/lib64/libmeters.so
# Media (Codec2) - from mojito - V14.0.9.0.SKGMIXM (MOJITOGlobal)
vendor/bin/hw/vendor.qti.media.c2@1.0-service|83c2effb6f76cb095bae840d95a2026014d92fe9
vendor/etc/init/vendor.qti.media.c2@1.0-service.rc|11209316ba8aae64b689217bc13b0804f6620678
vendor/etc/seccomp_policy/codec2.vendor.base.policy|05b0779b5da2ea640984d46a46a796edeaab5fab
vendor/etc/seccomp_policy/codec2.vendor.ext.policy|6a9a9eb3261048f02805261568097410e1a23b2d
vendor/lib/libqcodec2.so|01b1f94e7d17c5616635141ff7bc5e3f304b48f0
# Neuralnetworks
vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-qti
vendor/bin/npu_launcher
@ -771,53 +648,6 @@ vendor/etc/nfc/sec_s3nrn4v_hwreg.bin
vendor/etc/nfc/sec_s3nrn4v_swreg.bin
vendor/firmware/nfc/sec_s3nrn4v_firmware.bin
# OMX
vendor/etc/seccomp_policy/mediacodec.policy
vendor/lib/libdsd2pcm.so
vendor/lib/libOmxApeDec.so
vendor/lib/libOmxWmaDec.so
vendor/lib/libOmxApeDecSw.so
vendor/lib/libAlacSwDec.so
vendor/lib/libApeSwDec.so
vendor/lib/libFlacSwDec.so
vendor/lib/libMpeg4SwEncoder.so
vendor/lib/libstagefright_soft_qtiflacdec.so
vendor/lib/libswvdec.so
vendor/lib/libOmxSwVencMpeg4.so
vendor/lib/libOmxDsdDec.so
vendor/lib/libOmxAlacDecSw.so
vendor/lib/libOmxSwVdec.so
vendor/lib/libOmxBlackBar.so
vendor/lib/libOmxAacDec.so
vendor/lib/libOmxQcelp13Dec.so
vendor/lib/libOmxAlacDec.so
vendor/lib/libOmxAmrwbplusDec.so
vendor/lib/libOmxEvrcDec.so
vendor/lib/vendor.qti.hardware.vpp@1.1.so
vendor/lib/vendor.qti.hardware.vpp@1.2.so
vendor/lib/vendor.qti.hardware.vpp@1.3.so
vendor/lib64/libOmxApeDec.so
vendor/lib64/libAlacSwDec.so
vendor/lib64/libApeSwDec.so
vendor/lib64/libFlacSwDec.so
vendor/lib64/libMpeg4SwEncoder.so
vendor/lib64/libstagefright_soft_qtiflacdec.so
vendor/lib64/libswvdec.so
vendor/lib64/libOmxWmaDec.so
vendor/lib64/libOmxApeDecSw.so
vendor/lib64/libOmxSwVencMpeg4.so
vendor/lib64/libOmxAlacDecSw.so
vendor/lib64/libOmxSwVdec.so
vendor/lib64/libOmxBlackBar.so
vendor/lib64/libOmxAacDec.so
vendor/lib64/libOmxQcelp13Dec.so
vendor/lib64/libOmxAlacDec.so
vendor/lib64/libOmxAmrwbplusDec.so
vendor/lib64/libOmxEvrcDec.so
vendor/lib64/vendor.qti.hardware.vpp@1.1.so
vendor/lib64/vendor.qti.hardware.vpp@1.2.so
vendor/lib64/vendor.qti.hardware.vpp@1.3.so
# Perf
vendor/bin/hw/vendor.qti.hardware.perf@2.2-service
vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc
@ -861,6 +691,28 @@ vendor/lib64/libprotobuf-cpp-lite-3.9.1.so
vendor/etc/public.libraries.txt
# QMI
vendor/bin/irsc_util
vendor/bin/pd-mapper
vendor/bin/qrtr-ns
vendor/bin/ssr_setup
vendor/lib/libdsutils.so
vendor/lib64/libdsutils.so
vendor/lib/libqmi.so
vendor/lib64/libqmi.so
vendor/lib/libqmi_cci.so
vendor/lib64/libqmi_cci.so
vendor/lib/libqmi_client_helper.so
vendor/lib64/libqmi_client_helper.so
vendor/lib/libqmi_client_qmux.so
vendor/lib64/libqmi_client_qmux.so
vendor/lib/libqmi_csi.so
vendor/lib64/libqmi_csi.so
vendor/lib/libqmiservices.so
vendor/lib64/libqmiservices.so
vendor/lib/libqdi.so
vendor/lib64/libqdi.so
vendor/lib/libqdp.so
vendor/lib64/libqdp.so
vendor/lib/libdiag.so
vendor/lib/libdiagjni.so
vendor/lib/libpdmapper.so
@ -889,6 +741,28 @@ vendor/etc/sec_config
vendor/etc/init/init.qti.qcv.rc
# RIL
vendor/bin/hw/rild
vendor/bin/adpl
vendor/bin/ipacm-diag
vendor/bin/tftp_server
vendor/bin/rmt_storage
vendor/etc/init/netmgrd.rc
vendor/etc/data/dsi_config.xml
vendor/etc/data/netmgr_config.xml
vendor/etc/locale/plmn_delta_eng.bin
vendor/etc/plmn_delta_hktw.bin
vendor/etc/plmn_se13.bin
vendor/etc/mtu-conf.xml
vendor/lib/libconfigdb.so
vendor/lib64/libconfigdb.so
vendor/lib/libqcmaputils.so
vendor/lib64/libqcmaputils.so
vendor/lib64/libengmode_client.so
vendor/lib64/libsec-ril.so|8064276c21564763ab7a36bdfad0b81a771a6f5e
vendor/lib64/libsecril-client.so;MODULE_SUFFIX=_vendor
vendor/lib64/libril_sem.so
vendor/lib64/libSemTelephonyProps.so
vendor/lib64/libSemDataProps.so
vendor/etc/init/dataadpl.rc
vendor/etc/init/ipacm-diag.rc
vendor/etc/init/vendor.qti.tftp.rc
@ -910,70 +784,8 @@ vendor/lib64/libvkmanager_vendor.so
vendor/lib/libxml.so
vendor/lib64/libxml.so
vendor/lib64/vendor.samsung.hardware.radio.bridge@2.0.so
vendor/lib64/vendor.samsung.hardware.radio@2.0.so
vendor/lib64/vendor.samsung.hardware.radio.bridge@2.1.so
vendor/lib64/vendor.samsung.hardware.radio.channel@2.0.so
vendor/lib64/vendor.samsung.hardware.radio@2.1.so
# QMI - from A525FXXU4AUJ2
vendor/bin/irsc_util|c2cb91666e88000df258730cd4a0a81a207a2704
vendor/bin/pd-mapper|a4e55ee88823aa430b1631c98dc813754d3dc013
vendor/bin/qrtr-ns|09cff0de46c5d4eb1cd7dfa5b5bdda015e9d7a75
vendor/bin/ssr_setup|d29b53a3121e9e305eb5a31273d3fb9101d4ffc7
vendor/lib/libdsutils.so|36cdb350c59799aa0a80f519f96ead7d3ee89973
vendor/lib64/libdsutils.so|d46085964069785ea6b3bac24a69348ebd47d74c
vendor/lib/libqmi.so|721c5dc3a64d603d1aa80ee5a0692cccc7ecbdcd
vendor/lib64/libqmi.so|350b7221e85ac9930af92203aadfa8f785051917
vendor/lib/libqmi_cci.so|9e6e1f9410034b352a90d3636dbab77e04ac798e
vendor/lib64/libqmi_cci.so|fe28dceb33e9a3070b19ea394a26245f4cc9bda3
vendor/lib/libqmi_client_helper.so|71c4f5375645420915c2c4acdfdc82eb7ef92f76
vendor/lib64/libqmi_client_helper.so|906e317d26ab331745166bc5a42b767c3fa517f8
vendor/lib/libqmi_client_qmux.so|ed3d7ebdce68a988825e992143333dfa9aede478
vendor/lib64/libqmi_client_qmux.so|c79a6964a0e4684b45c5340a5fce7a96f3442cc1
vendor/lib/libqmi_csi.so|f65cbe21c2a8d8e1d375aeacadb1f31d2818497f
vendor/lib64/libqmi_csi.so|28b7dd8906c028af98500bbab2e912d16fab455f
vendor/lib/libqmiservices.so|97e8634aafcddc9520b788694dff0e6499ec2d00
vendor/lib64/libqmiservices.so|33b70e96e031e646758e5d887f1c9d6792e990ab
vendor/lib/librilqmiservices-ext.so|aeefecff17a9e4f247da67f878667760535cfd8b
vendor/lib64/librilqmiservices-ext.so|a020dafb8d1932ab90bbcfe362afb93dc74d010d
vendor/lib/libqdi.so|ba4b20f2c09fff4ffc3a14d4ae9746fa21c52179
vendor/lib64/libqdi.so|b57089bb6cdb17442b06952bf21f97ee2d4b1f30
vendor/lib/libqdp.so|738344f32ef0c1372fb1b207232bab22800c20a0
vendor/lib64/libqdp.so|14b4020c1cb9a04a52742b226913324ef060775b
# RIL - from A525FXXU4AUJ2
vendor/bin/hw/rild|72c84e72636177fd669be36a6eb8eda63fe270b0
vendor/bin/adpl|e4b48a55f8b9a8376daf115aace6f19c6289a325
vendor/bin/ATFWD-daemon|936e1d2b6127c551eabe6bfeeab31c2271bebf02
vendor/bin/ipacm-diag|aa89edba217878c5ea07b2d9f89a5410078b5f98
vendor/bin/netmgrd|6871b8c8ceb075ee710654fc2e11eff8e0eef2e1
vendor/bin/tftp_server|2a13e915980354f803b0dd04c53bf5318bcec173
vendor/bin/rmt_storage|17f8aa097adc319ef6b9c5caaf5ef267089f2b8d
vendor/etc/data/dsi_config.xml|ea5973ae0bffbdfbffb84fc2348b260d53b03b02
vendor/etc/data/netmgr_config.xml|ebd99ffce6bc051ee811478c4f866907cfb80046
vendor/etc/init/netmgrd.rc|3968aa11ebdebab2b5b53bbea1525e8cd5dfe837
vendor/etc/locale/plmn_delta_eng.bin|642c0104ac67f587f07fa79ceab34ba43c4522fa
vendor/etc/plmn_delta_hktw.bin|97a5a4747e8c32d463d8f26254257309b8a03a63
vendor/etc/plmn_se13.bin|e1961fbbab7d8ef092b76a707b8364ba8c4ef012
vendor/etc/seccomp_policy/atfwd@2.0.policy|74fdb7d47bdb6d0cb06b13701a96a76c9171ab5d
vendor/etc/mtu-conf.xml|febe82a2b92265b74e9ceb528f0c9da10a3b51e7
vendor/lib/libconfigdb.so|d6b7ee43c7cad7e9b1f296a2e9531540c5499f84
vendor/lib64/libconfigdb.so|1193bbec010e24102caa7974a22cc0dcf0ec6c47
vendor/lib/libdsi_netctrl.so|3ebe293a1bc3d217ad2c8acf39f4eaf9245c59f5
vendor/lib64/libdsi_netctrl.so|24cb384cc9b8ca1bc1c0c6f36cfce5d237064bd6
vendor/lib/libnetmgr.so|72f9fb23851dd6ffe6ac0aabfce5081d69f1839a
vendor/lib/libnetmgr_common.so|b7987fd703db7688086b10c612e910e445db65a6
vendor/lib64/libnetmgr.so|527afad81de5394679e6ef4c46e7faf4d03e5419
vendor/lib64/libnetmgr_common.so|9ffa3e00702aa3db43908cf44af70fb438aa5bd5
vendor/lib/libqcmaputils.so|287f2558403918db436c39b39fa731ddda2235ee
vendor/lib64/libqcmaputils.so|7ecfbdbec099854c60a6393ee7f568bedc28989b
vendor/lib64/libengmode_client.so|a0d931e18a4e81a8de4169a419b187568d042708
vendor/lib64/libsec-ril.so|5bc6b84fb09f11202d5bb61ca422bae351e9d0c7
vendor/lib64/libsec-ril-dsds.so|12bc89df6348392265fc240d461dfdba114aa434
vendor/lib64/libsecril-client.so|c49dbd56d93e00ccb3f008b955e81495573ff313
vendor/lib/libril.so|b7759521aeb60a07b929e4ff53ba25338c4cd087
vendor/lib64/libril.so|49d4eebf79faefd03b8378c3ed07cf44730a15ff
vendor/lib64/liblqe.so|732f3a617a90c2c96b54fe80d0ab2a409b2cb82a
vendor/lib64/vendor.qti.hardware.radio.atcmdfwd@1.0.so|c6dd375aba54c664e61cf1915477feb01154333f
# Sensors
vendor/bin/factory.ssc
@ -1111,6 +923,14 @@ vendor/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc
vendor/lib/vendor.qti.hardware.tui_comm@1.0.so
vendor/lib64/vendor.qti.hardware.tui_comm@1.0.so
# VPP
vendor/lib/vendor.qti.hardware.vpp@1.1.so
vendor/lib/vendor.qti.hardware.vpp@1.2.so
vendor/lib/vendor.qti.hardware.vpp@1.3.so
vendor/lib64/vendor.qti.hardware.vpp@1.1.so
vendor/lib64/vendor.qti.hardware.vpp@1.2.so
vendor/lib64/vendor.qti.hardware.vpp@1.3.so
# Wifi
vendor/bin/cnss-daemon
vendor/bin/hw/macloader

@ -22,7 +22,7 @@ cc_library_static {
include_dirs: [
"system/libbase/include",
"bootable/recovery",
"bootable/recovery/edify/include",
"bootable/deprecated-ota/edify/include",
"bootable/recovery/otautil/include"
],
}

@ -117,10 +117,10 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.vendor.rilchip.rc
LOCAL_MODULE := vendor.samsung.rilchip.qcom.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.vendor.rilchip.rc
LOCAL_SRC_FILES := etc/vendor.samsung.rilchip.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init
include $(BUILD_PREBUILT)

@ -867,13 +867,6 @@ service profiler_daemon /system/bin/profiler_daemon
group root
disabled
service charger /system/bin/charger
class charger
user system
group system graphics input
capabilities SYS_BOOT
seclabel u:r:charger:s0
service vendor.ssr_diag /system/vendor/bin/ssr_diag
class late_start
user system
@ -1006,10 +999,6 @@ service bugreport /system/bin/dumpstate -d -p -B -z -o /data/user_de/0/com.andro
oneshot
keycodes 114 115 116
#Set GPU Opengles version
on property:vendor.opengles.version=*
setprop ro.opengles.version ${vendor.opengles.version}
#Set gpu available frequencies property
on property:vendor.gpu.available_frequencies=*
setprop ro.vendor.gpu.available_frequencies ${vendor.gpu.available_frequencies}

@ -51,6 +51,9 @@ on early-init
# pogo keyboard
chown system system /sys/class/sec/sec_keypad/fw_update
on post-fs-data
mkdir /data/vendor/gatekeeper 0770 system system
on init
symlink /dev/block/bootdevice/by-name/steady /dev/block/steady
symlink /dev/block/bootdevice/by-name/persistent /dev/block/persistent
@ -171,7 +174,7 @@ on post-fs
on boot
# Permissions for Touchscreen
chown system radio /sys/class/sec/tsp/cmd
chown system system /sys/class/sec/tsp/cmd
chown system system /sys/class/sec/tsp/input/enabled
chmod 0660 /sys/class/sec/tsp/input/enabled
chown system system /sys/class/sec/tsp/enabled

@ -154,6 +154,8 @@ on boot
chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
chmod 0660 /dev/cpuset/camera-daemon/tasks
setprop vendor.powerhal.init 1
#Load WLAN driver
# exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/ qca_cld3_wlan
# exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/5.4-gki qca_cld3_wlan

@ -10,10 +10,7 @@
on post-fs-data
mkdir /data/vendor/secradio 0770 radio radio
on property:ro.vendor.multisim.simslotcount=1
stop ril-daemon1
on property:vts.native_server.on=*
on property:vts.native_server.on=*
setprop vendor.vts.native_server.on ${vts.native_server.on}
service network_config /vendor/bin/secril_config_svc NetworkConfig
@ -29,7 +26,10 @@ service sim_config /vendor/bin/secril_config_svc SimConfig
disabled
on fs
chown radio radio /mnt/vendor/efs/factory.prop
chmod 0600 /mnt/vendor/efs/factory.prop
exec_start sim_config
on post-fs-data
exec_start network_config
setprop ro.telephony.default_network ${ro.vendor.radio.default_network}

@ -177,7 +177,7 @@ on boot
chown system radio /sys/class/sensors/light_sensor/read_copr
chown system radio /sys/class/sensors/light_sensor/boled_enable
chown system radio /sys/class/sensors/light_sensor/hallic_info
chown system radio /sys/class/sensors/light_sensor/lcd_onoff
chown system system /sys/class/sensors/light_sensor/lcd_onoff
chown system radio /sys/class/sensors/light_sensor/sensorhub_ddi_spi_check
chown system radio /sys/class/sensors/light_sensor/light_cal
chown system radio /sys/class/sensors/light_sensor/set_aod_rect

@ -398,6 +398,9 @@ firmware_directories /vendor/firmware_mnt/image/ /vendor/firmware-modem/image/
/sys/class/dual_role_usb/* power_role 0660 system system
/sys/class/dual_role_usb/* mode 0660 system system
#permissions secure_lock
/sys/class/usb_notify/usb_control usb_sl 0664 system usb
#Memory Offline
/sys/devices/system/memory/memory* state 0660 system system

@ -11,18 +11,6 @@ service ril-daemon /vendor/bin/hw/rild
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW SYS_ADMIN CHOWN SYS_TIME
socket sap_uim_socket1 stream 660 bluetooth bluetooth
service ril-daemon1 /vendor/bin/hw/rild -c 2
class main
user radio
group radio cache inet misc audio log oem_2901 system drmrpc vpn readproc wakelock net_admin
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW SYS_ADMIN CHOWN SYS_TIME
# QMUX must be in multiple groups to support external process connections
service qmuxd /vendor/bin/qmuxd
class main
user root
group radio audio bluetooth gps oem_2901
service irsc_util_oem /vendor/bin/irsc_util "/vendor/etc/sec_config_oem"
class core
user root
@ -32,6 +20,9 @@ service irsc_util_oem /vendor/bin/irsc_util "/vendor/etc/sec_config_oem"
service vendor.ril-daemon /vendor/bin/hw/rild-dummy
override
service vendor.ril-daemon1 /vendor/bin/hw/rild-dummy
override
service vendor.ril-daemon2 /vendor/bin/hw/rild-dummy
override
@ -45,3 +36,12 @@ service vendor.embmsslServer /vendor/bin/embmsslServer
on property:init.svc.vendor.netmgrd=running && property:ro.vendor.use_data_netmgrd=false
stop vendor.netmgrd
# To enable QMS logs
on post-fs-data
mkdir /data/vendor/qms_logs 0775 radio system
mkdir /data/vendor/qms_logs/main 0775 radio system
mkdir /data/vendor/qms_logs/other 0775 radio system
mkdir /data/vendor/qms_logs/config 0775 radio system
copy /vendor/etc/qms_log_config /data/vendor/qms_logs/config/qms_log_config
chmod 0666 /data/vendor/qms_logs/config/qms_log_config

@ -37,9 +37,10 @@ on post-fs-data
chmod 0640 /sys/wifi/feature
# for WIFI MAC
mkdir /mnt/vendor/efs/wifi 0755 wifi wifi
chown wifi wifi /mnt/vendor/efs/wifi/.mac.info
chmod 0644 /mnt/vendor/efs/wifi/.mac.info
mkdir /mnt/vendor/efs/wifi 0775 system wifi
chmod 0775 /mnt/vendor/efs/wifi
chown system wifi /mnt/vendor/efs/wifi/.mac.info
chmod 0664 /mnt/vendor/efs/wifi/.mac.info
chown wifi wifi /mnt/vendor/efs/wifi/.mac.cob
chmod 0644 /mnt/vendor/efs/wifi/.mac.cob
chown wifi wifi /sys/wifi/mac_addr

@ -41,7 +41,7 @@
<bool name="config_wifi_dual_band_support">true</bool>
<!-- Wifi driver supports WPA3 Simultaneous Authentication of Equals (WPA3-SAE) for softap -->
<bool translatable="false" name="config_wifi_softap_sae_supported">false</bool>
<bool translatable="false" name="config_wifi_softap_sae_supported">true</bool>
<!-- Wifi Hal supports force client disconnect for softap -->
<bool translatable="false" name="config_wifiSofapClientForceDisconnectSupported">false</bool>

@ -1,8 +0,0 @@
type audio_parameter_service, domain, coredomain;
type audio_parameter_service_exec, system_file_type, exec_type, file_type;
init_daemon_domain(audio_parameter_service)
hal_client_domain(audio_parameter_service, hal_audio)
set_prop(audio_parameter_service, vendor_call_prop)

@ -1 +0,0 @@
/(system_ext|system/system_ext)/bin/audio_parameter_service.samsung_sm7125 u:object_r:audio_parameter_service_exec:s0

@ -1 +0,0 @@
system_public_prop(vendor_call_prop)

@ -0,0 +1 @@
allow charger_vendor sysfs_battery:file r_file_perms;

@ -50,10 +50,10 @@
# VENDOR
/(vendor|system/vendor)/bin/factory\.ssc u:object_r:factory_ssc_exec:s0
/(vendor|system/vendor)/bin/hw/macloader u:object_r:macloader_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.camera\.provider@2\.5-service\.samsung u:object_r:hal_camera_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.camera\.provider-service_32\.samsung u:object_r:hal_camera_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.drm@[0-9]\.[0-9]-service\.widevine u:object_r:hal_drm_widevine_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.keymaster@[0-9]\.[0-9]-service\.samsung u:object_r:hal_keymaster_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.power(@[0-9]\.[0-9])?-service\.samsung-libperfmgr u:object_r:hal_power_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.power(@[0-9]\.[0-9])?-service\.pixel-libperfmgr u:object_r:hal_power_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.nfc@[0-9]\.[0-9]-service\.samsung u:object_r:hal_nfc_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.lineage\.fastcharge@[0-9]\.[0-9]-service\.samsung u:object_r:hal_lineage_fastcharge_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.lineage\.touch\@[0-9]\.[0-9]-service.sm7125 u:object_r:hal_lineage_touch_default_exec:s0
@ -63,4 +63,5 @@
/(vendor|system/vendor)/bin/hw/vendor.samsung.hardware.thermal@1.0-service u:object_r:hal_thermal_default_exec:s0
/(vendor|system/vendor)/bin/hw/android.hardware.sensors-service.samsung-multihal u:object_r:hal_sensors_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.vibrator\-service\.samsung u:object_r:hal_vibrator_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.health@2\.1-service-samsung u:object_r:hal_health_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.health-service\.samsung u:object_r:hal_health_default_exec:s0
/(vendor|system/vendor)/bin/hw/sehradiomanager u:object_r:sehradiomanager_exec:s0

@ -6,4 +6,4 @@ allow hal_audio_default imei_efs_file:file { read open getattr };
allow hal_audio_default efs_file:dir search;
get_prop(hal_audio_default, vendor_call_prop)
get_prop(hal_audio_default, vendor_radio_prop)

@ -19,3 +19,6 @@ allow hal_fingerprint_default sysfs_fingerprint:file r_file_perms;
# /data/vendor/biometrics/*
allow hal_fingerprint_default biometrics_vendor_data_file:file create_file_perms;
allow hal_fingerprint_default biometrics_vendor_data_file:dir { read write open add_name create rmdir remove_name search };
# /sys/class/lcd/panel/
allow hal_fingerprint_default sysfs_lcd_writable:file r_file_perms;

@ -7,9 +7,6 @@ vendor.samsung.hardware.bluetooth.audio::ISehBluetoothAudioProvidersFactory
# GNSS
vendor.samsung.hardware.gnss::ISehGnss u:object_r:hal_gnss_hwservice:s0
# Health
vendor.samsung.hardware.health::ISehHealth u:object_r:hal_health_hwservice:s0
# RIL
vendor.samsung.hardware.radio.bridge::ISehBridge u:object_r:hal_telephony_hwservice:s0
vendor.samsung.hardware.radio::ISehRadio u:object_r:hal_telephony_hwservice:s0

@ -22,8 +22,7 @@ vendor.sec.rild. u:object_r:vendor_radio_prop:s0
ro.vendor.sec.radio. u:object_r:vendor_radio_prop:s0
ro.vendor.use_data_netmgrd u:object_r:vendor_radio_prop:s0
ro.vendor.epdg.support u:object_r:vendor_radio_prop:s0
vendor.calls u:object_r:vendor_call_prop:s0
vendor.calls u:object_r:vendor_radio_prop:s0
# Sensors
vendor.sensor.file.permission u:object_r:vendor_sensors_prop:s0

@ -3,8 +3,6 @@
get_prop(rild, vendor_radio_prop)
get_prop(rild, radio_prop)
set_prop(rild, vendor_call_prop)
allow rild block_device:dir search;
allow rild mnt_vendor_file:dir { getattr search };

@ -0,0 +1,13 @@
# sehradiomanager.te
type sehradiomanager, domain;
type sehradiomanager_exec, exec_type, file_type, vendor_file_type;
init_daemon_domain(sehradiomanager)
get_prop(sehradiomanager, vendor_radio_prop)
get_prop(sehradiomanager, hwservicemanager_prop)
binder_call(sehradiomanager, hwservicemanager)
binder_call(sehradiomanager, servicemanager)
binder_call(servicemanager, sehradiomanager)
hal_client_domain(sehradiomanager, hal_telephony)

@ -0,0 +1,14 @@
vendor.samsung.hardware.radio.bridge.ISehRadioBridge/slot1 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.bridge.ISehRadioBridge/slot2 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.channel.ISehRadioChannel/epdgd u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.channel.ISehRadioChannel/epdgd2 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.channel.ISehRadioChannel/imsd u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.channel.ISehRadioChannel/imsd2 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.data.ISehRadioData/slot1 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.data.ISehRadioData/slot2 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.messaging.ISehRadioMessaging/slot1 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.messaging.ISehRadioMessaging/slot2 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.network.ISehRadioNetwork/slot1 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.network.ISehRadioNetwork/slot2 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.sim.ISehRadioSim/slot1 u:object_r:hal_radio_service:s0
vendor.samsung.hardware.radio.sim.ISehRadioSim/slot2 u:object_r:hal_radio_service:s0

@ -1,8 +1,7 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2023 The LineageOS Project
#
# SPDX-FileCopyrightText: 2016 The CyanogenMod Project
# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
@ -21,27 +20,64 @@ if [ ! -f "${HELPER}" ]; then
fi
source "${HELPER}"
function vendor_imports() {
cat <<EOF >>"$1"
"device/samsung/sm7125-common",
"hardware/qcom-caf/sm8150",
"hardware/qcom-caf/wlan",
"hardware/samsung",
"vendor/qcom/opensource/dataservices",
"vendor/qcom/opensource/display",
EOF
}
function lib_to_package_fixup_vendor_variants() {
if [ "$2" != "vendor" ]; then
return 1
fi
case "$1" in
vendor.qti.hardware.fm@1.0 | libsndmonitor | libexthwplugin | libbatterylistener | \
liba2dpoffload | libcomprcapture | libhdmiedid | libhdmipassthru | libhfp | \
libcirrusspkrprot | libspkrprot | libsecril-client)
echo "$1_vendor"
;;
*)
return 1
;;
esac
}
function lib_to_package_fixup() {
lib_to_package_fixup_clang_rt_ubsan_standalone "$1" ||
lib_to_package_fixup_proto_3_9_1 "$1" ||
lib_to_package_fixup_vendor_variants "$@"
}
# Initialize the helper for common
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true
setup_vendor "${DEVICE_COMMON}" "${VENDOR_COMMON:-$VENDOR}" "${ANDROID_ROOT}" true
# Warning headers and guards
write_headers "a52q a72q"
# The standard common blobs
write_makefiles "${MY_DIR}/proprietary-files.txt" true
write_makefiles "${MY_DIR}/proprietary-files.txt"
# Finish
write_footers
if [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
if [ -s "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
source "${MY_DIR}/../../${VENDOR}/${DEVICE}/setup-makefiles.sh"
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false
# Warning headers and guards
write_headers
# The standard device blobs
write_makefiles "${MY_DIR}/../${DEVICE}/proprietary-files.txt" true
write_makefiles "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-files.txt"
if [ -f "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-firmware.txt" ]; then
append_firmware_calls_to_makefiles "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-firmware.txt"
fi
# Finish
write_footers

@ -23,7 +23,6 @@ ro.vendor.audio.sdk.ssr=false
vendor.audio.offload.gapless.enabled=true
vendor.audio.safx.pbe.enabled=false
vendor.audio.parser.ip.buffer.size=262144
vendor.audio.flac.sw.decoder.24bit=true
vendor.audio.hal.boot.timeout.ms=20000
vendor.audio.use.sw.alac.decoder=true
vendor.audio.use.sw.ape.decoder=true
@ -169,15 +168,16 @@ ro.hardware.keystore=mdfpp
ro.security.keystore.keytype=sakv2,gak
# Media
debug.stagefright.omx_default_rank=0
debug.stagefright.ccodec=1
debug.stagefright.c2inputsurface=-1
# Perf
ro.vendor.extension_library=libqti-perfd-client.so
# Power HAL
vendor.powerhal.disp.idle_support=false
# RIL
vendor.sec.rild.libpath=/vendor/lib64/libsec-ril.so
vendor.sec.rild.libpath2=/vendor/lib64/libsec-ril-dsds.so
persist.vendor.radio.atfwd.start=true
ro.vendor.sec.radio.def_network=9
persist.vendor.radio.enableadvancedscan=true

Loading…
Cancel
Save