S666LN: Migrate to py extract utils

Change-Id: I087ccb1a88ee9a964056ee7c1801036351e02b03
Signed-off-by: fjrXTR <fajarslebew31@gmail.com>
This commit is contained in:
fjrXTR
2025-08-18 15:43:27 +02:00
parent 177d1d0c5b
commit 342938e643
5 changed files with 126 additions and 236 deletions

123
extract-files.py Executable file
View File

@@ -0,0 +1,123 @@
#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
#
# SPDX-FileCopyrightText: 2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
from extract_utils.fixups_blob import (
blob_fixup,
blob_fixups_user_type,
)
from extract_utils.fixups_lib import (
lib_fixups,
lib_fixups_user_type,
)
from extract_utils.main import (
ExtractUtils,
ExtractUtilsModule,
)
namespace_imports = [
'device/itel/S666LN',
'hardware/mediatek',
'hardware/mediatek/libmtkperf_client',
'hardware/transsion',
]
lib_fixups: lib_fixups_user_type = {
**lib_fixups,
}
blob_fixups: blob_fixups_user_type = {
('vendor/bin/hw/android.hardware.gnss-service.mediatek', 'vendor/lib64/hw/android.hardware.gnss-impl-mediatek.so'): blob_fixup()
.replace_needed('android.hardware.gnss-V1-ndk_platform.so', 'android.hardware.gnss-V1-ndk.so'),
('vendor/lib64/hw/mt6789/vendor.mediatek.hardware.pq@2.15-impl.so', 'vendor/bin/hw/vendor.mediatek.hardware.pq@2.2-service'): blob_fixup()
.replace_needed('libhidlbase.so', 'libhidlbase-v32.so')
.replace_needed('libbinder.so', 'libbinder-v32.so')
.replace_needed('libutils.so', 'libutils-v32.so')
.add_needed('libshim_sensors.so'),
('vendor/lib64/libwvhidl.so', 'vendor/lib64/mediadrm/libwvdrmengine.so'): blob_fixup()
.replace_needed('libprotobuf-cpp-lite-3.9.1.so', 'libprotobuf-cpp-full-3.9.1.so'),
'vendor/etc/init/android.hardware.media.c2@1.2-mediatek.rc': blob_fixup()
.regex_replace('@1.2-mediatek', '@1.2-mediatek-64b'),
'vendor/bin/hw/android.hardware.media.c2@1.2-mediatek-64b': blob_fixup()
.add_needed('libstagefright_foundation-v33.so')
.replace_needed('libavservices_minijail_vendor.so', 'libavservices_minijail.so'),
('vendor/bin/mnld', 'vendor/lib64/hw/android.hardware.sensors@2.X-subhal-mediatek.so', 'vendor/lib64/mt6789/libaalservice.so', 'vendor/lib64/mt6789/libcam.utils.sensorprovider.so'): blob_fixup()
.add_needed('libshim_sensors.so'),
'vendor/lib64/hw/audio.primary.mediatek.so': blob_fixup()
.replace_needed('libalsautils.so', 'libalsautils-v31.so')
.add_needed('libstagefright_foundation-v33.so'),
'vendor/bin/hw/android.hardware.security.keymint-service.trustonic': blob_fixup()
.replace_needed('android.hardware.security.keymint-V1-ndk_platform.so', 'android.hardware.security.keymint-V1-ndk.so')
.replace_needed('android.hardware.security.secureclock-V1-ndk_platform.so', 'android.hardware.security.secureclock-V1-ndk.so')
.replace_needed('android.hardware.security.sharedsecret-V1-ndk_platform.so', 'android.hardware.security.sharedsecret-V1-ndk.so')
.add_needed('android.hardware.security.rkp-V3-ndk.so'),
'vendor/etc/init/android.hardware.neuralnetworks-shim-service-mtk.rc': blob_fixup()
.regex_replace('start', 'enable'),
'vendor/etc/init/init.thermal_core.rc': blob_fixup()
.regex_replace('ro.vendor.mtk_thermal_2_0', 'vendor.thermal.link_ready'),
'vendor/etc/vintf/manifest/manifest_media_c2_V1_2_default.xml': blob_fixup()
.regex_replace('1.1', '1.2'),
('vendor/lib64/mt6789/libneuralnetworks_sl_driver_mtk_prebuilt.so', 'vendor/lib64/libnvram.so', 'vendor/lib64/libsysenv.so', 'vendor/lib64/libtflite_mtk.so'): blob_fixup()
.add_needed('libbase_shim.so'),
'vendor/lib64/hw/hwcomposer.mtk_common.so': blob_fixup()
.patchelf_version('0_17_2')
.add_needed('libprocessgroup_shim.so'),
('vendor/lib64/mt6789/lib3a.flash.so', 'vendor/lib64/mt6789/lib3a.ae.stat.so', 'vendor/lib64/mt6789/lib3a.sensors.flicker.so', 'vendor/lib64/mt6789/lib3a.sensors.color.so', 'vendor/lib64/mt6789/libaaa_ltm.so', 'vendor/lib64/lib3a.ae.pipe.so', 'vendor/lib64/libSQLiteModule_VER_ALL.so'): blob_fixup()
.add_needed('liblog.so'),
'vendor/lib64/mt6789/libmnl.so': blob_fixup()
.add_needed('libcutils.so'),
'vendor/lib64/mt6789/libneuralnetworks_sl_driver_mtk_prebuilt.so': blob_fixup()
.clear_symbol_version('AHardwareBuffer_allocate')
.clear_symbol_version('AHardwareBuffer_createFromHandle')
.clear_symbol_version('AHardwareBuffer_describe')
.clear_symbol_version('AHardwareBuffer_getNativeHandle')
.clear_symbol_version('AHardwareBuffer_lock')
.clear_symbol_version('AHardwareBuffer_release')
.clear_symbol_version('AHardwareBuffer_unlock'),
('vendor/lib64/mt6789/libtranssion_bodybeauty.so', 'vendor/lib64/mt6789/libeffect_hal.so'): blob_fixup()
.clear_symbol_version('AHardwareBuffer_allocate')
.clear_symbol_version('AHardwareBuffer_createFromHandle')
.clear_symbol_version('AHardwareBuffer_describe')
.clear_symbol_version('AHardwareBuffer_getNativeHandle')
.clear_symbol_version('AHardwareBuffer_lock')
.clear_symbol_version('AHardwareBuffer_lockPlanes')
.clear_symbol_version('AHardwareBuffer_release')
.clear_symbol_version('AHardwareBuffer_unlock'),
'vendor/bin/hw/mtkfusionrild': blob_fixup()
.add_needed('libutils-v32.so'),
'vendor/lib64/mt6789/libmorpho_video_stabilizer.so': blob_fixup()
.add_needed('libutils-v32.so'),
('vendor/lib64/hw/mt6789/vendor.mediatek.hardware.camera.isphal@1.0-impl.so', 'vendor/lib64/hw/mt6789/vendor.mediatek.hardware.camera.isphal@1.1-impl.so'): blob_fixup()
.replace_needed('libhidlbase.so', 'libhidlbase-v31.so')
.replace_needed('libbinder.so', 'libbinder-v31.so')
.replace_needed('libutils.so', 'libutils-v31.so'),
'vendor/lib64/mt6789/libmtkcam_stdutils.so': blob_fixup()
.replace_needed('libhidlbase.so', 'libhidlbase-v31.so')
.replace_needed('libbinder.so', 'libbinder-v31.so')
.replace_needed('libutils.so', 'libutils-v31.so'),
'vendor/bin/hw/mt6789/camerahalserver': blob_fixup()
.replace_needed('libhidlbase.so', 'libhidlbase-v31.so')
.replace_needed('libbinder.so', 'libbinder-v31.so')
.replace_needed('libutils.so', 'libutils-v31.so'),
'vendor/lib64/hw/mt6789/android.hardware.camera.provider@2.6-impl-mediatek.so': blob_fixup()
.replace_needed('libhidlbase.so', 'libhidlbase-v31.so')
.replace_needed('libbinder.so', 'libbinder-v31.so')
.replace_needed('libutils.so', 'libutils-v31.so')
.add_needed('libcamera_metadata_shim.so'),
} # fmt: skip
module = ExtractUtilsModule(
'S666LN',
'itel',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
)
if __name__ == '__main__':
utils = ExtractUtils.device(module)
utils.run()

View File

@@ -1,179 +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=S666LN
VENDOR=itel
# 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}/../../.."
export TARGET_ENABLE_CHECKELF=false
# If XML files don't have comments before the XML header, use this flag
# Can still be used with broken XML files by using blob_fixup
export TARGET_DISABLE_XML_FIXING=true
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
--only-firmware)
ONLY_FIRMWARE=true
;;
-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
vendor/lib*/hw/mt6789/vendor.mediatek.hardware.pq@2.15-impl.so|\
vendor/bin/hw/vendor.mediatek.hardware.pq@2.2-service)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "libbinder.so" "libbinder-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libhidlbase.so" "libhidlbase-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libutils.so" "libutils-v31.so" "${2}"
;;
vendor/etc/init/android.hardware.media.c2@1.2-mediatek.rc)
[ "$2" = "" ] && return 0
sed -i 's/@1.2-mediatek/@1.2-mediatek-64b/g' "${2}"
;;
vendor/bin/hw/android.hardware.media.c2@1.2-mediatek-64b)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "libavservices_minijail_vendor.so" "libavservices_minijail.so" "${2}"
"${PATCHELF}" --add-needed "libstagefright_foundation-v33.so" "${2}"
;;
vendor/bin/hw/android.hardware.gnss-service.mediatek |\
vendor/lib64/hw/android.hardware.gnss-impl-mediatek.so)
[ "$2" = "" ] && return 0
"$PATCHELF" --replace-needed "android.hardware.gnss-V1-ndk_platform.so" "android.hardware.gnss-V1-ndk.so" "$2"
;;
vendor/bin/mnld|\
vendor/lib64/hw/android.hardware.sensors@2.X-subhal-mediatek.so|\
vendor/lib64/hw/mt6789/vendor.mediatek.hardware.pq@2.15-impl.so|\
vendor/lib64/mt6789/libaalservice.so|\
vendor/lib64/mt6789/libcam.utils.sensorprovider.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --add-needed "libshim_sensors.so" "${2}"
;;
vendor/lib*/libwvhidl.so|\
vendor/lib*/mediadrm/libwvdrmengine.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "libprotobuf-cpp-lite-3.9.1.so" "libprotobuf-cpp-full-3.9.1.so" "${2}"
;;
vendor/bin/hw/android.hardware.security.keymint-service.trustonic)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "android.hardware.security.keymint-V1-ndk_platform.so" "android.hardware.security.keymint-V1-ndk.so" "${2}"
"${PATCHELF}" --replace-needed "android.hardware.security.secureclock-V1-ndk_platform.so" "android.hardware.security.secureclock-V1-ndk.so" "${2}"
"${PATCHELF}" --replace-needed "android.hardware.security.sharedsecret-V1-ndk_platform.so" "android.hardware.security.sharedsecret-V1-ndk.so" "${2}"
grep -q "android.hardware.security.rkp-V3-ndk.so" "${2}" || ${PATCHELF} --add-needed "android.hardware.security.rkp-V3-ndk.so" "${2}"
;;
vendor/lib64/hw/mt6789/android.hardware.camera.provider@2.6-impl-mediatek.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "libutils.so" "libutils-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libhidlbase.so" "libhidlbase-v31.so" "${2}"
grep -q libshim_camera_metadata.so "${2}" || "${PATCHELF}" --add-needed libshim_camera_metadata.so "${2}"
;;
vendor/lib64/hw/mt6789/vendor.mediatek.hardware.camera.isphal@1.0-impl.so|\
vendor/lib64/hw/mt6789/vendor.mediatek.hardware.camera.isphal@1.1-impl.so|\
vendor/bin/hw/mt6789/camerahalserver)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "libutils.so" "libutils-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libbinder.so" "libbinder-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libhidlbase.so" "libhidlbase-v31.so" "${2}"
"${PATCHELF}" --add-needed "libprocessgroup_shim.so" "${2}"
;;
vendor/etc/init/init.thermal_core.rc)
[ "$2" = "" ] && return 0
sed -i 's|ro.vendor.mtk_thermal_2_0|vendor.thermal.link_ready|g' "${2}"
;;
vendor/etc/init/android.hardware.bluetooth@1.1-service-mediatek.rc)
sed -i '/vts/Q' "$2"
;;
vendor/etc/vintf/manifest/manifest_media_c2_V1_2_default.xml)
[ "$2" = "" ] && return 0
sed -i 's/1.1/1.2/' "$2"
;;
vendor/lib64/hw/hwcomposer.mtk_common.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --add-needed "libprocessgroup_shim.so" "${2}"
;;
vendor/lib64/mt6789/libneuralnetworks_sl_driver_mtk_prebuilt.so|\
vendor/lib*/libstfactory-vendor.so|\
vendor/lib*/libnvram.so|\
vendor/lib*/libsysenv.so|\
vendor/lib64/ese_spi_nxp.so|\
vendor/lib64/nfc_nci_nxp.so|\
vendor/lib*/libtflite_mtk.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --add-needed "libbase_shim.so" "${2}"
;;
vendor/lib64/hw/gf_fingerprint.default.so)
[ "$2" = "" ] && return 0
sed -i 's/libfingerprint.default.so/gf_fingerprint.default.so/' "${2}"
;;
vendor/lib64/libvendor.goodix.hardware.biometrics.fingerprint@2.1.so)
[ "$2" = "" ] && return 0
"{$PATCHELF}" --remove-needed "libhidlbase.so" "${2}"
sed -i "s/libhidltransport.so/libhidlbase-v31.so\x00/" "${2}"
;;
vendor/lib64/hw/audio.primary.mediatek.so)
[ "$2" = "" ] && return 0
"$PATCHELF" --replace-needed "libalsautils.so" "libalsautils-v31.so" "${2}"
grep -q "libstagefright_foundation-v33.so" "${2}" || "$PATCHELF" --add-needed "libstagefright_foundation-v33.so" "${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"

View File

@@ -21,9 +21,6 @@ vendor/lib64/vendor.mediatek.hardware.apuware.hmp@1.0.so
vendor/lib64/vendor.mediatek.hardware.apuware.utils@2.0.so
# Audio
vendor/bin/audiocmdservice_atci
vendor/bin/tran_tinymix
vendor/etc/init/audiocmdservice_atci.rc
vendor/lib/libbwc.so
vendor/lib/libladder.so
vendor/lib64/hw/audio.primary.mediatek.so
@@ -46,7 +43,6 @@ vendor/lib64/libaudioprimarydevicehalifclient.so
vendor/lib64/libaudiosmartpamtk.so
vendor/lib64/libaudiotoolkit_vendor.so
vendor/lib64/libaudio_param_parser-vnd.so
vendor/lib64/libtinycompress.so
vendor/lib64/libaurisysdemo.so
vendor/lib64/libbessound_hd_mtk_vendor.so
vendor/lib64/libblisrc32_vendor.so
@@ -58,7 +54,6 @@ vendor/lib64/libmtklimiter_vendor.so
vendor/lib64/libmtkshifter_vendor.so
vendor/lib64/libnxp_extamp_intf.so
vendor/lib64/librt_extamp_intf.so
vendor/lib64/libaudiofoundation.so
vendor/lib64/libspeech_enh_lib.so;DISABLE_CHECKELF
vendor/lib64/libspeechparser_vendor.so
vendor/lib64/libtinycompress.so
@@ -1194,7 +1189,6 @@ vendor/etc/vintf/manifest/manifest_cameraprovider.xml
# Camera - Required files
vendor/lib64/vendor.mediatek.hardware.mdmonitor@1.0.so
vendor/lib64/vendor.mediatek.hardware.power@1.1.so
vendor/lib64/lib3a.ae.pipe.so
vendor/lib64/libaibld.so
vendor/lib64/libaipe_bokeh.so
@@ -1257,7 +1251,6 @@ vendor/lib64/mt6789/libaibc_tuning_p2.so
vendor/lib64/mt6789/libaibc_tuning_p3.so
vendor/lib64/mt6789/libaibc_tuning_p4.so
vendor/lib64/mt6789/libaidepth_tuning.so
vendor/lib64/mt6789/libaiselector.so
vendor/lib64/mt6789/libamipengine.so
vendor/lib64/mt6789/libanc_night.so
vendor/lib64/mt6789/libarcsoft_high_dynamic_range.so
@@ -1270,7 +1263,6 @@ vendor/lib64/mt6789/libcolorlevel.so
vendor/lib64/mt6789/libdenoise.so
vendor/lib64/mt6789/libdip_drv.so
vendor/lib64/mt6789/libdip_postproc.so
vendor/lib64/mt6789/libDR.so
vendor/lib64/mt6789/libeffecthal.base.so
vendor/lib64/mt6789/libeffect_hal.so
vendor/lib64/mt6789/libeyedetector.so
@@ -1290,7 +1282,6 @@ vendor/lib64/mt6789/libimageio_plat_pipe.so
vendor/lib64/mt6789/libitdfacebeauty.so
vendor/lib64/mt6789/liblpcnr.so
vendor/lib64/mt6789/libmagicsky_64.so
vendor/lib64/mt6789/libmnl.so
vendor/lib64/mt6789/libmorpho_HDSR.so
vendor/lib64/mt6789/libmorpho_video_stabilizer.so;DISABLE_CHECKELF
vendor/lib64/mt6789/libmpbase.so
@@ -1406,7 +1397,6 @@ vendor/lib64/libgralloc_metadata.so
vendor/lib64/libgralloctypes_mtk.so
vendor/lib64/libion_mtk.so
vendor/lib64/libion_ulit.so
vendor/lib64/libladder.so
vendor/lib64/libmml.so
vendor/lib64/libOpenCL.so
vendor/lib64/libpqframework.so
@@ -1432,22 +1422,15 @@ vendor/lib64/vendor.mediatek.hardware.pq@2.7.so
vendor/lib64/vendor.mediatek.hardware.pq@2.8.so
vendor/lib64/vendor.mediatek.hardware.pq@2.9.so
# Display Configs
vendor/etc/AbnormalDisplayLog_dynamic.xml
vendor/etc/VideoLog_dynamic.xml
vendor/etc/ft8725_fhdp_dsi_vdo_lce_inx_120hz_x6837_cust_color.xml
vendor/etc/ft8725_fhdp_dsi_vdo_txd_inx_120hz_x6837_cust_color.xml
vendor/etc/ili7807s_fhdp_dsi_vdo_tm_tm_120hz_x6837_cust_color.xml
# DRM
vendor/bin/hw/android.hardware.drm@1.4-service.widevine
vendor/etc/init/android.hardware.drm@1.4-service.widevine.rc
-vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.4-service.widevine.xml
-vendor/lib64/mediadrm/libwvdrmengine.so;REPLACEDEP=libprotobuf-cpp-full-3.9.1:libprotobuf-cpp-full-3.9.1-vendorcompat
vendor/lib64/mediadrm/libwvdrmengine.so
vendor/lib64/liboemcrypto.so
vendor/lib64/libtlcWidevineModularDrm.so
vendor/lib64/liburee_meta_drmkeyinstall.so
-vendor/lib64/libwvhidl.so;REPLACEDEP=libprotobuf-cpp-full-3.9.1:libprotobuf-cpp-full-3.9.1-vendorcompat
vendor/lib64/libwvhidl.so
# Fingerprint
vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service
@@ -1463,7 +1446,6 @@ vendor/lib64/libgf_ca.so
vendor/lib64/libgf_factory_test.so
vendor/lib64/libgf_hal.so
vendor/lib64/libgoodixhwfingerprint.so
vendor/lib64/libtneclient.so
vendor/lib64/libvendor.goodix.hardware.biometrics.fingerprint@2.1.so
vendor/lib64/vendor.fpsensor.hardware.fpsensorhidlsvc@2.0.so

1
setup-makefiles.py Executable file
View File

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

View File

@@ -1,37 +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=S666LN
VENDOR=itel
# 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}/../../.."
export TARGET_ENABLE_CHECKELF=false
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}"
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
# Warning headers and guards
write_headers
write_makefiles "${MY_DIR}/proprietary-files.txt"
# Finish
write_footers