zenfone7: Switch to py extract utils

Change-Id: Ia13b728464495ff208ca1a706847b11af5c93ae8
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/extract-files.py b/extract-files.py
new file mode 100755
index 0000000..02684c9
--- /dev/null
+++ b/extract-files.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
+#
+# SPDX-FileCopyrightText: 2024 The LineageOS Project
+# SPDX-License-Identifier: Apache-2.0
+#
+
+from extract_utils.fixups_blob import (
+    blob_fixup,
+    blob_fixups_user_type,
+)
+from extract_utils.fixups_lib import (
+    lib_fixup_remove,
+    lib_fixups,
+    lib_fixups_user_type,
+)
+from extract_utils.main import (
+    ExtractUtils,
+    ExtractUtilsModule,
+)
+
+
+namespace_imports = [
+    'hardware/qcom-caf/sm8250',
+    'hardware/qcom-caf/wlan',
+    'vendor/qcom/opensource/display',
+    'vendor/qcom/opensource/commonsys/display',
+    'vendor/qcom/opensource/commonsys-intf/display',
+]
+
+def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
+    return f'{lib}_{partition}' if partition == 'vendor' else None
+
+lib_fixups: lib_fixups_user_type = {
+    **lib_fixups,
+    (
+    ): lib_fixup_vendor_suffix,
+    (
+    ): lib_fixup_remove,
+}
+
+blob_fixups: blob_fixups_user_type = {
+    ('system_ext/etc/permissions/vendor.qti.hardware.data.connection-V1.0-java.xml',
+     'system_ext/etc/permissions/vendor.qti.hardware.data.connection-V1.1-java.xml'): blob_fixup()
+        .regex_replace('system/product', 'system_ext')
+        .regex_replace('xml version="2.0"', 'xml version="1.0"'),
+    'vendor/etc/seccomp_policy/qspm.policy': blob_fixup()
+        .add_line_if_missing('gettid: 1'),
+    'vendor/lib64/libvendor.goodix.hardware.biometrics.fingerprint@2.1.so': blob_fixup()
+        .replace_needed('libhidltransport.so', 'libhidlbase_shim.so'),
+    'vendor/lib64/libwvhidl.so': blob_fixup()
+        .patchelf_version('0_17_2')
+        .add_needed('libcrypto_shim.so'),
+    'vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so': blob_fixup()
+        .sig_replace('13 0A 00 94', '1F 20 03 D5'),
+}  # fmt: skip
+
+module = ExtractUtilsModule(
+    'zenfone7',
+    'asus',
+    blob_fixups=blob_fixups,
+    lib_fixups=lib_fixups,
+    check_elf=False,
+    namespace_imports=namespace_imports,
+)
+
+module.add_proprietary_file('proprietary-files-product.txt')
+module.add_proprietary_file('proprietary-files-vendor.txt')
+
+if __name__ == '__main__':
+    utils = ExtractUtils.device(module)
+    utils.run()
diff --git a/extract-files.sh b/extract-files.sh
deleted file mode 100755
index 7446855..0000000
--- a/extract-files.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2016 The CyanogenMod Project
-#           (C) 2018 The Omnirom 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.
-#
-
-set -e
-
-DEVICE=zenfone7
-VENDOR=asus
-
-# Load extractutils and do some sanity checks
-MY_DIR="${BASH_SOURCE%/*}"
-if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
-
-CM_ROOT="$MY_DIR"/../../..
-
-HELPER="$CM_ROOT"/vendor/omni/build/tools/extract_utils.sh
-if [ ! -f "$HELPER" ]; then
-    echo "Unable to find helper script at $HELPER"
-    exit 1
-fi
-. "$HELPER"
-
-# Default to sanitizing the vendor folder before extraction
-CLEAN_VENDOR=true
-
-while [ "$1" != "" ]; do
-    case $1 in
-        -p | --path )           shift
-                                SRC=$1
-                                ;;
-        -s | --section )        shift
-                                SECTION=$1
-                                CLEAN_VENDOR=false
-                                ;;
-        -n | --no-cleanup )     CLEAN_VENDOR=false
-                                ;;
-    esac
-    shift
-done
-
-if [ -z "$SRC" ]; then
-    SRC=adb
-fi
-
-function blob_fixup() {
-    case "${1}" in
-    # Fix xml version
-    system_ext/etc/permissions/vendor.qti.hardware.data.connection-V1.0-java.xml | system_ext/etc/permissions/vendor.qti.hardware.data.connection-V1.1-java.xml)
-        sed -i 's|system/product|system_ext|g' "${2}"
-        sed -i 's|xml version="2.0"|xml version="1.0"|g' "${2}"
-        ;;
-    vendor/etc/seccomp_policy/qspm.policy)
-        echo "gettid: 1" >> "${2}"
-        ;;
-    vendor/lib64/libvendor.goodix.hardware.biometrics.fingerprint@2.1.so)
-        sed -i "s/libhidltransport.so/libhidlbase_shim.so/" "${2}"
-        ;;
-    vendor/lib64/libwvhidl.so)
-        "${PATCHELF}" --add-needed "libcrypto_shim.so" "${2}"
-        ;;
-    vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so)
-        "${SIGSCAN}" -p "13 0A 00 94" -P "1F 20 03 D5" -f "${2}"
-        ;;
-    esac
-}
-
-# Initialize the helper
-setup_vendor "$DEVICE" "$VENDOR" "$CM_ROOT" false "$CLEAN_VENDOR"
-
-extract "$MY_DIR"/proprietary-files-vendor.txt "$SRC" "$SECTION"
-extract "$MY_DIR"/proprietary-files-product.txt "$SRC" "$SECTION"
-extract "$MY_DIR"/proprietary-files.txt "$SRC" "$SECTION"
-
-"$MY_DIR"/setup-makefiles.sh
diff --git a/proprietary-files-product.txt b/proprietary-files-product.txt
index d01cba3..84cad80 100644
--- a/proprietary-files-product.txt
+++ b/proprietary-files-product.txt
@@ -29,7 +29,7 @@
 # ROG 5
 product/etc/permissions/vendor.qti.hardware.data.connection-V1.0-java.xml:system_ext/etc/permissions/vendor.qti.hardware.data.connection-V1.0-java.xml
 product/etc/permissions/vendor.qti.hardware.data.connection-V1.1-java.xml:system_ext/etc/permissions/vendor.qti.hardware.data.connection-V1.1-java.xml
-system_ext/framework/qti-telephony-common.jar|07B2B91F5D547C5B5E0752F0F5534321BC93A2C1
+system_ext/framework/qti-telephony-common.jar|07b2b91f5d547c5b5e0752f0f5534321bc93a2c1
 system_ext/framework/vendor.qti.data.factory-V1.0-java.jar
 system_ext/framework/vendor.qti.data.factory-V2.0-java.jar
 system_ext/framework/vendor.qti.data.factory-V2.1-java.jar
diff --git a/proprietary-files-vendor.txt b/proprietary-files-vendor.txt
index 17b8051..6611179 100644
--- a/proprietary-files-vendor.txt
+++ b/proprietary-files-vendor.txt
@@ -1,6 +1,5 @@
 vendor/app/CACertService/CACertService.apk
-vendor/app/CneApp/CneApp.apk
-vendor/app/CneApp/lib/arm64/libvndfwk_detect_jni.qti.so
+vendor/app/CneApp/CneApp.apk;REQUIRED=CneApp.libvndfwk_detect_jni.qti_symlink
 vendor/app/IWlanService/IWlanService.apk
 vendor/app/TimeService/TimeService.apk
 vendor/app/com.qualcomm.qti.gpudrivers.kona.api30/com.qualcomm.qti.gpudrivers.kona.api30.apk
@@ -1039,7 +1038,6 @@
 vendor/etc/vintf/manifest/android.hardware.sensors@2.0-multihal.xml
 vendor/etc/vintf/manifest/android.hardware.thermal@2.0-service.qti.xml
 vendor/etc/vintf/manifest/android.hardware.usb@1.2-service.xml
-vendor/etc/vintf/manifest/android.hardware.wifi.hostapd.xml
 vendor/etc/vintf/manifest/c2_manifest_vendor.xml
 vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml
 vendor/etc/vintf/manifest/power.xml
@@ -1335,10 +1333,10 @@
 vendor/lib/com.qualcomm.qti.uceservice@2.1.so
 vendor/lib/com.qualcomm.qti.uceservice@2.2.so
 vendor/lib/egl/eglSubDriverAndroid.so
-vendor/lib/egl/libEGL_adreno.so
+vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so
 vendor/lib/egl/libGLESv1_CM_adreno.so
-vendor/lib/egl/libGLESv2_adreno.so
-vendor/lib/egl/libq3dtools_adreno.so
+vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so
+vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so
 vendor/lib/egl/libq3dtools_esx.so
 vendor/lib/ese_client.so
 vendor/lib/ese_spi_nxp.so
@@ -1400,9 +1398,7 @@
 vendor/lib/libAsusRGBSensorHAL.so
 vendor/lib/libC2D2.so
 vendor/lib/libCB.so
-vendor/lib/libEGL_adreno.so
 vendor/lib/libFlacSwDec.so
-vendor/lib/libGLESv2_adreno.so
 vendor/lib/libGPQTEEC_vendor.so
 vendor/lib/libGPTEE_vendor.so
 vendor/lib/libGPreqcancel.so
@@ -1619,7 +1615,6 @@
 vendor/lib/libpn553_fw.so
 vendor/lib/libprotobuf-cpp-full-3.9.1.so
 vendor/lib/libprotobuf-cpp-lite-3.9.1.so
-vendor/lib/libq3dtools_adreno.so
 vendor/lib/libqcbor.so
 vendor/lib/libqcc_file_agent.so
 vendor/lib/libqcci_legacy.so
@@ -1723,7 +1718,7 @@
 vendor/lib/libsynx.so
 vendor/lib/libsysmon_cdsp_skel.so
 vendor/lib/libsystem_health_mon.so
--vendor/lib/libthermalclient.so
+vendor/lib/libthermalclient.so
 vendor/lib/libthreadutils.so
 vendor/lib/libtime_genoff.so
 vendor/lib/libtinycompress.so
@@ -2042,10 +2037,10 @@
 vendor/lib64/com.qualcomm.qti.uceservice@2.2.so
 vendor/lib64/deviceInfoServiceModule.so
 vendor/lib64/egl/eglSubDriverAndroid.so
-vendor/lib64/egl/libEGL_adreno.so
+vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so
 vendor/lib64/egl/libGLESv1_CM_adreno.so
-vendor/lib64/egl/libGLESv2_adreno.so
-vendor/lib64/egl/libq3dtools_adreno.so
+vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so
+vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so
 vendor/lib64/egl/libq3dtools_esx.so
 vendor/lib64/ese_client.so
 vendor/lib64/ese_spi_nxp.so
@@ -2106,9 +2101,7 @@
 vendor/lib64/libAsusRGBSensorHAL.so
 vendor/lib64/libC2D2.so
 vendor/lib64/libCB.so
-vendor/lib64/libEGL_adreno.so
 vendor/lib64/libFlacSwDec.so
-vendor/lib64/libGLESv2_adreno.so
 vendor/lib64/libGPQTEEC_vendor.so
 vendor/lib64/libGPTEE_vendor.so
 vendor/lib64/libGPreqcancel.so
@@ -2345,7 +2338,6 @@
 vendor/lib64/libprotobuf-cpp-full-3.9.1.so
 vendor/lib64/libprotobuf-cpp-lite-3.9.1.so
 vendor/lib64/libpwirispq.so
-vendor/lib64/libq3dtools_adreno.so
 vendor/lib64/libqcbor.so
 vendor/lib64/libqcc_file_agent.so
 vendor/lib64/libqcci_legacy.so
@@ -2448,7 +2440,7 @@
 vendor/lib64/libsynx.so
 vendor/lib64/libsysmon_cdsp_skel.so
 vendor/lib64/libsystem_health_mon.so
--vendor/lib64/libthermalclient.so
+vendor/lib64/libthermalclient.so
 vendor/lib64/libthreadutils.so
 vendor/lib64/libtime_genoff.so
 vendor/lib64/libtinycompress.so
diff --git a/proprietary-files.txt b/proprietary-files.txt
index 8f1acfb..9c0fae5 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -315,7 +315,6 @@
 # MirarCast
 system_ext/bin/sigma_miracasthalservice
 system_ext/etc/init/com.qualcomm.qti.sigma_miracast@1.0-service.rc
-system_ext/lib/vendor.qti.hardware.sigma_miracast@1.0.so
 system_ext/lib64/hw/vendor.qti.hardware.sigma_miracast@1.0-impl.so
 system_ext/lib64/libmiracastsystem.so
 system_ext/lib64/vendor.qti.hardware.sigma_miracast@1.0-halimpl.so
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 551c406..0000000
--- a/setup-makefiles.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2016 The CyanogenMod Project
-#           (C) 2017 The LineageOS Project
-#           (C) 2018 The Omnirom 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.
-#
-
-set -e
-
-# Required!
-DEVICE=zenfone7
-VENDOR=asus
-
-INITIAL_COPYRIGHT_YEAR=2020
-
-# Load extractutils and do some sanity checks
-MY_DIR="${BASH_SOURCE%/*}"
-if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
-
-CM_ROOT="$MY_DIR"/../../..
-
-HELPER="$CM_ROOT"/vendor/omni/build/tools/extract_utils.sh
-if [ ! -f "$HELPER" ]; then
-    echo "Unable to find helper script at $HELPER"
-    exit 1
-fi
-. "$HELPER"
-
-# Initialize the helper
-setup_vendor "$DEVICE" "$VENDOR" "$CM_ROOT"
-
-# Copyright headers and guards
-write_headers "zenfone7"
-
-# The standard blobs
-write_makefiles "$MY_DIR"/proprietary-files.txt
-
-write_makefiles "$MY_DIR"/proprietary-files-product.txt
-
-write_makefiles "$MY_DIR"/proprietary-files-vendor.txt
-
-cat << EOF >> "$ANDROIDMK"
-
-EOF
-
-# We are done!
-write_footers
-