From 6266fbca9dd0bf5e56d10352011132222deb5233 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Tue, 15 Oct 2024 22:04:03 +0200 Subject: [PATCH] dre: Switch to py extract utils Change-Id: Ia13b728464495ff208ca1a706847b11af5c93ae8 --- extract-files.py | 56 +++++++++++++++++++ extract-files.sh | 132 --------------------------------------------- setup-makefiles.py | 1 + setup-makefiles.sh | 74 ------------------------- 4 files changed, 57 insertions(+), 206 deletions(-) create mode 100755 extract-files.py delete mode 100755 extract-files.sh create mode 100755 setup-makefiles.py delete mode 100755 setup-makefiles.sh diff --git a/extract-files.py b/extract-files.py new file mode 100755 index 0000000..9e4d847 --- /dev/null +++ b/extract-files.py @@ -0,0 +1,56 @@ +#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3 +# +# SPDX-FileCopyrightText: 2024 The LineageOS Project +# SPDX-License-Identifier: Apache-2.0 +# + +from extract_utils.fixups_blob import ( + blob_fixup, + blob_fixups_user_type, +) +from extract_utils.main import ( + ExtractUtils, + ExtractUtilsModule, +) + +blob_fixups: blob_fixups_user_type = { + 'odm/etc/init/android.hardware.drm@1.3-service.widevine.rc': blob_fixup() + .regex_replace('writepid /dev/cpuset/foreground/tasks', 'task_profiles ProcessCapacityHigh'), + ('odm/lib64/libCOppLceTonemapAPI.so', 'odm/lib64/libaps_frame_registration.so'): blob_fixup() + .replace_needed('libstdc++.so', 'libstdc++_vendor.so'), + ('odm/lib64/libwvhidl.so','odm/lib64/mediadrm/libwvdrmengine.so'): blob_fixup() + .add_needed('libcrypto_shim.so'), + 'product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml': blob_fixup() + .regex_replace('/my_product', '/product'), + 'system_ext/framework/oplus-ims-ext.jar': blob_fixup() + .apktool_patch('blob-patches/oplus-ims-ext.patch', '-r'), + 'system_ext/lib/libwfdmmsrc_system.so': blob_fixup() + .add_needed('libgui_shim.so'), + 'system_ext/lib/libwfdservice.so': blob_fixup() + .replace_needed('android.media.audio.common.types-V2-cpp.so', 'android.media.audio.common.types-V3-cpp.so'), + 'system_ext/lib64/libwfdnative.so': blob_fixup() + .replace_needed('android.hidl.base@1.0.so', 'libhidlbase.so') + .add_needed('libinput_shim.so'), + 'vendor/etc/init/android.hardware.neuralnetworks@1.3-service-qti.rc': blob_fixup() + .regex_replace('writepid /dev/stune/nnapi-hal/tasks', 'task_profiles NNApiHALPerformance'), + 'vendor/etc/init/vendor.qti.media.c2@1.0-service.rc': blob_fixup() + .regex_replace('writepid /dev/cpuset/foreground/tasks', 'task_profiles ProcessCapacityHigh'), + 'vendor/etc/libnfc-nci.conf': blob_fixup() + .regex_replace('NFC_DEBUG_ENABLED=1', 'NFC_DEBUG_ENABLED=0'), + ('vendor/etc/media_codecs.xml', 'vendor/etc/media_codecs_holi.xml', 'vendor/etc/media_codecs_holi_vendor.xml'): blob_fixup() + .regex_replace('.*media_codecs_(google_audio|google_c2|google_telephony|vendor_audio).*\n', ''), + 'vendor/etc/msm_irqbalance.conf': blob_fixup() + .regex_replace('IGNORED_IRQ=19,21,38$', 'IGNORED_IRQ=19,21,38,209,218'), + 'vendor/lib64/hw/com.qti.chi.override.so': blob_fixup() + .add_needed('libcamera_metadata_shim.so'), +} # fmt: skip + +module = ExtractUtilsModule( + 'dre', + 'oneplus', + blob_fixups=blob_fixups, +) + +if __name__ == '__main__': + utils = ExtractUtils.device(module) + utils.run() diff --git a/extract-files.sh b/extract-files.sh deleted file mode 100755 index 0afe932..0000000 --- a/extract-files.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# -# SPDX-FileCopyrightText: 2016 The CyanogenMod Project -# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project -# SPDX-License-Identifier: Apache-2.0 -# - -set -e - -DEVICE=dre -VENDOR=oneplus - -# Load extract_utils and do some sanity checks -MY_DIR="${BASH_SOURCE%/*}" -if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi - -ANDROID_ROOT="${MY_DIR}/../../.." - -HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh" -if [ ! -f "${HELPER}" ]; then - echo "Unable to find helper script at ${HELPER}" - exit 1 -fi -source "${HELPER}" - -# Default to sanitizing the vendor folder before extraction -CLEAN_VENDOR=true - -KANG= -SECTION= - -while [ "${#}" -gt 0 ]; do - case "${1}" in - -n | --no-cleanup) - CLEAN_VENDOR=false - ;; - -k | --kang) - KANG="--kang" - ;; - -s | --section) - SECTION="${2}" - shift - CLEAN_VENDOR=false - ;; - *) - SRC="${1}" - ;; - esac - shift -done - -if [ -z "${SRC}" ]; then - SRC="adb" -fi - -function blob_fixup() { - case "${1}" in - odm/lib64/libwvhidl.so|odm/lib64/mediadrm/libwvdrmengine.so) - [ "$2" = "" ] && return 0 - grep -q "libcrypto_shim.so" "${2}" || "${PATCHELF}" --add-needed "libcrypto_shim.so" "${2}" - ;; - product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml) - [ "$2" = "" ] && return 0 - sed -i "s/\/my_product/\/product/" "${2}" - ;; - system_ext/framework/oplus-ims-ext.jar) - [ "$2" = "" ] && return 0 - apktool_patch "${2}" "${MY_DIR}/blob-patches/oplus-ims-ext.patch" -r - ;; - system_ext/lib/libwfdmmsrc_system.so) - [ "$2" = "" ] && return 0 - grep -q "libgui_shim.so" "${2}" || "${PATCHELF}" --add-needed "libgui_shim.so" "${2}" - ;; - system_ext/lib64/libwfdservice.so|system_ext/lib/libwfdservice.so) - [ "$2" = "" ] && return 0 - "${PATCHELF}" --replace-needed "android.media.audio.common.types-V2-cpp.so" "android.media.audio.common.types-V3-cpp.so" "${2}" - ;; - system_ext/lib64/libwfdnative.so) - [ "$2" = "" ] && return 0 - sed -i "s/android.hidl.base@1.0.so/libhidlbase.so\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/" "${2}" - grep -q "libinput_shim.so" "${2}" || "${PATCHELF}" --add-needed "libinput_shim.so" "${2}" - ;; - odm/etc/init/android.hardware.drm@1.3-service.widevine.rc) - [ "$2" = "" ] && return 0 - sed -i "s|writepid /dev/cpuset/foreground/tasks|task_profiles ProcessCapacityHigh|g" "${2}" - ;; - vendor/etc/init/android.hardware.neuralnetworks@1.3-service-qti.rc) - [ "$2" = "" ] && return 0 - sed -i "s|writepid /dev/stune/nnapi-hal/tasks|task_profiles NNApiHALPerformance|g" "${2}" - ;; - vendor/etc/init/vendor.qti.media.c2@1.0-service.rc) - [ "$2" = "" ] && return 0 - sed -i "s|writepid /dev/cpuset/foreground/tasks|task_profiles ProcessCapacityHigh|g" "${2}" - ;; - vendor/etc/libnfc-nci.conf) - [ "$2" = "" ] && return 0 - sed -i "s/NFC_DEBUG_ENABLED=1/NFC_DEBUG_ENABLED=0/" "${2}" - ;; - vendor/etc/media_codecs.xml|vendor/etc/media_codecs_holi.xml|vendor/etc/media_codecs_holi_vendor.xml) - [ "$2" = "" ] && return 0 - sed -Ei "/media_codecs_(google_audio|google_c2|google_telephony|vendor_audio)/d" "${2}" - ;; - vendor/lib64/hw/com.qti.chi.override.so) - [ "$2" = "" ] && return 0 - grep -q libcamera_metadata_shim.so "${2}" || "${PATCHELF}" --add-needed libcamera_metadata_shim.so "${2}" - ;; - odm/lib64/libCOppLceTonemapAPI.so|odm/lib64/libaps_frame_registration.so) - [ "$2" = "" ] && return 0 - "${PATCHELF}" --replace-needed "libstdc++.so" "libstdc++_vendor.so" "${2}" - ;; - vendor/etc/msm_irqbalance.conf) - [ "$2" = "" ] && return 0 - sed -i "s/IGNORED_IRQ=19,21,38$/&,209,218/" "${2}" - ;; - *) - return 1 - ;; - esac - - return 0 -} - -function blob_fixup_dry() { - blob_fixup "$1" "" -} - -# Initialize the helper -setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}" - -extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" - -"${MY_DIR}/setup-makefiles.sh" diff --git a/setup-makefiles.py b/setup-makefiles.py new file mode 100755 index 0000000..32947cf --- /dev/null +++ b/setup-makefiles.py @@ -0,0 +1 @@ +#!./extract-files.py --regenerate_makefiles diff --git a/setup-makefiles.sh b/setup-makefiles.sh deleted file mode 100755 index b918f8b..0000000 --- a/setup-makefiles.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash -# -# SPDX-FileCopyrightText: 2016 The CyanogenMod Project -# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project -# SPDX-License-Identifier: Apache-2.0 -# - -set -e - -DEVICE=dre -VENDOR=oneplus - -# Load extract_utils and do some sanity checks -MY_DIR="${BASH_SOURCE%/*}" -if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi - -ANDROID_ROOT="${MY_DIR}/../../.." - -HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh" -if [ ! -f "${HELPER}" ]; then - echo "Unable to find helper script at ${HELPER}" - exit 1 -fi -source "${HELPER}" - -function vendor_imports() { - cat << EOF >> "$1" - "device/oneplus/dre", - "hardware/qcom-caf/sm8350", - "hardware/qcom-caf/wlan", - "hardware/oplus", - "vendor/qcom/opensource/commonsys/display", - "vendor/qcom/opensource/commonsys-intf/display", - "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 - com.qualcomm.qti.dpm.api@1.0 | \ - libmmosal | \ - vendor.qti.hardware.wifidisplaysession@1.0 | \ - vendor.qti.imsrtpservice@3.0) - echo "$1-vendor" - ;; - libOmxCore | \ - libwpa_client) ;; - *) - 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}" "${VENDOR}" "${ANDROID_ROOT}" - -# Warning headers and guards -write_headers - -write_makefiles "${MY_DIR}/proprietary-files.txt" - -# Finish -write_footers