raphael: Switch to py extract utils

This commit is contained in:
kondors1995
2025-06-25 00:18:28 +03:00
committed by Joey
parent 685e14155e
commit b31cd93b6c
5 changed files with 95 additions and 208 deletions

77
extract-files.py Executable file
View File

@@ -0,0 +1,77 @@
#!/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/xiaomi/raphael",
"hardware/qcom-caf/sm8150",
"hardware/qcom-caf/wlan",
"hardware/xiaomi",
"vendor/qcom/opensource/dataservices",
"vendor/qcom/opensource/commonsys-intf/display",
"vendor/qcom/opensource/commonsys/display",
"vendor/qcom/opensource/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,
(
'com.qualcomm.qti.dpm.api@1.0',
'vendor.qti.hardware.fm@1.0',
'libmmosal',
'vendor.qti.hardware.wifidisplaysession@1.0',
'vendor.qti.imsrtpservice@3.0',
): lib_fixup_vendor_suffix,
}
blob_fixups: blob_fixups_user_type = {
'vendor/lib64/camera/components/com.qti.node.watermark.so': blob_fixup()
.add_needed('libpiex_shim.so'),
'system_ext/lib64/libwfdmmsrc_system.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/lib64/libwfdnative.so': blob_fixup()
.add_needed('libbinder_shim.so')
.add_needed('libinput_shim.so'),
'system_ext/lib64/libwfdservice.so': blob_fixup()
.replace_needed('android.media.audio.common.types-V2-cpp.so', 'android.media.audio.common.types-V4-cpp.so'),
'vendor/etc/init/init.mi_thermald.rc': blob_fixup()
.regex_replace('.*seclabel u:r:mi_thermald:s0\n', ''),
'vendor/etc/seccomp_policy/atfwd@2.0.policy': blob_fixup()
.add_line_if_missing('gettid: 1'),
'vendor/lib64/libwvhidl.so': blob_fixup()
.add_needed('libcrypto_shim.so'),
'vendor/lib64/mediadrm/libwvdrmengine.so': blob_fixup()
.add_needed('libcrypto_shim.so'),
} # fmt: skip
module = ExtractUtilsModule(
'raphael',
'xiaomi',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
)
if __name__ == '__main__':
utils = ExtractUtils.device(module)
utils.run()

View File

@@ -1,115 +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=raphael
VENDOR=xiaomi
# 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=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
SECTION=
KANG=
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
vendor/lib64/camera/components/com.qti.node.watermark.so)
[ "$2" = "" ] && return 0
grep -q "libpiex_shim.so" "${2}" || "${PATCHELF}" --add-needed "libpiex_shim.so" "${2}"
;;
vendor/lib64/mediadrm/libwvdrmengine.so|vendor/lib64/libwvhidl.so)
[ "$2" = "" ] && return 0
grep -q "libcrypto-v33.so" "${2}" || "${PATCHELF}" --replace-needed "libcrypto.so" "libcrypto-v33.so" "$2"
;;
vendor/etc/seccomp_policy/atfwd@2.0.policy)
[ "$2" = "" ] && return 0
grep -q "gettid: 1" "${2}" || echo "gettid: 1" >> "${2}"
;;
system_ext/lib/libwfdmmsrc_system.so)
[ "$2" = "" ] && return 0
grep -q "libgui_shim.so" "${2}" || "${PATCHELF}" --add-needed "libgui_shim.so" "${2}"
;;
system_ext/lib/libwfdservice.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "android.media.audio.common.types-V1-cpp.so" "android.media.audio.common.types-V4-cpp.so" "${2}"
;;
system_ext/lib64/libwfdnative.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "android.hidl.base@1.0.so" "libhidlbase.so" "${2}"
grep -q "libbinder_shim.so" "${2}" || "${PATCHELF}" --add-needed "libbinder_shim.so" "${2}"
grep -q "libinput_shim.so" "${2}" || "${PATCHELF}" --add-needed "libinput_shim.so" "${2}"
;;
vendor/etc/libnfc-nci.conf)
[ "$2" = "" ] && return 0
sed -i "s/NFC_DEBUG_ENABLED=1/NFC_DEBUG_ENABLED=0/" "${2}"
;;
vendor/etc/libnfc-nxp.conf)
[ "$2" = "" ] && return 0
sed -i "/NXPLOG_\w\+_LOGLEVEL/ s/0x03/0x02/" "${2}"
sed -i "s/NFC_DEBUG_ENABLED=1/NFC_DEBUG_ENABLED=0/" "${2}"
;;
*)
return 1
;;
vendor/lib64/libdlbdsservice.so | vendor/lib/libstagefright_soft_ac4dec.so | vendor/lib/libstagefright_soft_ddpdec.so)
"${PATCHELF}" --replace-needed "libstagefright_foundation.so" "libstagefright_foundation-v33.so" "${2}"
;;
esac
return 0
}
function blob_fixup_dry() {
blob_fixup "$1" ""
}
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" \
"${KANG}" --section "${SECTION}"
"${MY_DIR}/setup-makefiles.sh"

View File

@@ -69,7 +69,7 @@ system_ext/lib/com.qualcomm.qti.ant@1.0.so
system_ext/lib64/com.qualcomm.qti.ant@1.0.so
# Alarm
-product/app/PowerOffAlarm/PowerOffAlarm.apk;NODEXPO
product/app/PowerOffAlarm/PowerOffAlarm.apk
vendor/bin/hw/vendor.qti.hardware.alarm@1.0-service
vendor/bin/power_off_alarm
vendor/etc/init/vendor.qti.hardware.alarm@1.0-service.rc
@@ -156,8 +156,8 @@ vendor/lib64/libcdsprpc.so
vendor/lib64/libsysmon_cdsp_skel.so
# CNE - from LA.UM.9.1.r1-13700-SMxxx0.QSSI13.0
vendor/app/CneApp/CneApp.apk;NODEXPO;REQUIRED=CneApp.libvndfwk_detect_jni.qti_symlink|345dc6c677e9bd7a7d36033b8955e90d2a1594d5
vendor/app/IWlanService/IWlanService.apk;NODEXPO|9ea57bfbf58799a564fcf498de9f5fe3506f7342
vendor/app/CneApp/CneApp.apk;REQUIRED=CneApp.libvndfwk_detect_jni.qti_symlink|345dc6c677e9bd7a7d36033b8955e90d2a1594d5
vendor/app/IWlanService/IWlanService.apk|9ea57bfbf58799a564fcf498de9f5fe3506f7342
vendor/bin/cnd|953858869b513828894800bf8556f3845d9665a2
vendor/etc/cne/wqeclient/ATT/ATT_profile1.xml|578f3f8f56059bfdbef926bcc68d01c15e06951f
vendor/etc/cne/wqeclient/ATT/ATT_profile2.xml|1fb42c672a12b6660bdce3ea94e0c43719dd9de8
@@ -491,7 +491,7 @@ vendor/lib64/vendor.dolby.hardware.dms@2.0-impl.so
vendor/lib64/vendor.dolby.hardware.dms@2.0.so
# DPM (system) - from LA.UM.9.1.r1-13700-SMxxx0.QSSI13.0
framework/tcmclient.jar|4e1dfaa243c67fec31b5a44086c9c417892761ae
system/framework/tcmclient.jar|4e1dfaa243c67fec31b5a44086c9c417892761ae
system_ext/bin/dpmd|5a42bc4e5c841573579e0718d6e80e688767eeed
system_ext/etc/dpm/dpm.conf|95e27da8c989e96c6faea6f0697bce11955b62a5
system_ext/etc/init/dpmd.rc|738b638ff04cda368e22c03e16baf90ba157a6fc
@@ -505,7 +505,7 @@ system_ext/lib64/libdpmfdmgr.so|da636fca9a9a91a897d17fd519448b10053a696b
system_ext/lib64/libdpmframework.so|d974f04f110b3c1a1282d78bb0ff8a29dc022439
system_ext/lib64/libdpmtcm.so|5521469cac3a2bec3da66cd36637df83ee59b97e
system_ext/lib64/vendor.qti.diaghal@1.0.so|339886a9895a29dfae15e8708d6eeacda1663908
system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk;NODEXPO|ebf1f753ed24f8b6ba87c5f27c628889c38d0a85
system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk|ebf1f753ed24f8b6ba87c5f27c628889c38d0a85
# DPM (vendor) - from LA.UM.9.1.r1-13700-SMxxx0.QSSI13.0
vendor/bin/dpmQmiMgr|e682a4c6e684be96de179158c65e5732f052ab2c
@@ -659,11 +659,11 @@ vendor/lib/libC2D2.so|0db6df32c0f7ccccab4b35a743fb3463b5460f22
vendor/lib/libCB.so|6a3cdb29ae4a3bf199c826dd966e6bd7182a1883
vendor/lib/libOpenCL.so|6e75e989719cb1758ad6b9f9890eb1c13989af6a
vendor/lib/libOpenCL_adreno.so|b90752ae53d16c9e9cede2b38d4a8109b39217b8
vendor/lib/libadreno_app_profiles.so|5aabcb8192b37e10ace61b5af09d27e54900837c
vendor/lib/libadreno_app_profiles.so|4ad675ed078d0c859fbd82ba32b16acfb00c3447
vendor/lib/libadreno_utils.so|dba1cdabec2c75990e9c194ef9abb4ab9e1dfca8
vendor/lib/libc2d30_bltlib.so;DISABLE_CHECKELF|b39cee73121e2ee3c485f7a21344a3f653079b45
vendor/lib/libgpudataproducer.so|84eb0a73b58c856fa0a73494e14f2a5d6c9dd7cc
vendor/lib/libgsl.so|9efe877eb5e3d2fb7202731f82893636f8b1fb08
vendor/lib/libgsl.so|f11778a1870dfbb1c5b6bdd202d938dd0d4ec79b
vendor/lib/libkcl.so|b6f77098fa4c67415f6df9529b6aab854c365921
vendor/lib/libkernelmanager.so|800e45c7a930297556ed76c31c9181d51f438db4
vendor/lib/libllvm-glnext.so|98b5481940f558890a6f7023a1c3a28aa7099958
@@ -681,11 +681,11 @@ vendor/lib64/libC2D2.so|3d2fd1c31402cd732bab96710dee9b72247952e1
vendor/lib64/libCB.so|1e1f68f4e954617b8879ca980367ef53e82864a3
vendor/lib64/libOpenCL.so|ecdf2882b7d531c256a780db55fe41a52532242f
vendor/lib64/libOpenCL_adreno.so|2b1dae0e6b8a8cec153a4b68683c6c3b0da3ce54
vendor/lib64/libadreno_app_profiles.so|22c998e0ce12c116dd492c8362624de614af56a4
vendor/lib64/libadreno_app_profiles.so|26b8f09515c6b8b30a2c6d250434af6f874ced4e
vendor/lib64/libadreno_utils.so|1c460f799d9c2d7b97b5c6977cbd68f2ee8ed827
vendor/lib64/libc2d30_bltlib.so;DISABLE_CHECKELF|b204da5d59224ec28f452ebf662f187be9214266
vendor/lib64/libgpudataproducer.so|ae1e97612796a06a629f56ffb0dca4afb325b6ce
vendor/lib64/libgsl.so|430f8f9a66f9abaf43a6d7fb22f7398f0f92e1b8
vendor/lib64/libgsl.so|1420520b888230d4735c2a342314e7c96e649ed5
vendor/lib64/libkcl.so|f3cadc5c626a02ae354ad1bd082beed6fb640b1b
vendor/lib64/libkernelmanager.so|192da1584dbb837723b68d6c83835efd4f02e3f7
vendor/lib64/libllvm-glnext.so|e1f52bbdb0ae2b48f19cbe31a6a32e2ff9a2a6eb
@@ -729,8 +729,8 @@ vendor/firmware/a650_sqe.fw
vendor/firmware/a650_zap.elf
# HotwordEnrollment - from MIUI 12.5.2
-product/priv-app/HotwordEnrollmentOKGoogleHEXAGON/HotwordEnrollmentOKGoogleHEXAGON.apk;NODEXPO|62e301d2f386771facd9a9aa546c0fcc241116da
-product/priv-app/HotwordEnrollmentXGoogleHEXAGON/HotwordEnrollmentXGoogleHEXAGON.apk;NODEXPO|8639661f6fad570723bc6f2759da76604bd804fa
product/priv-app/HotwordEnrollmentOKGoogleHEXAGON/HotwordEnrollmentOKGoogleHEXAGON.apk|62e301d2f386771facd9a9aa546c0fcc241116da
product/priv-app/HotwordEnrollmentXGoogleHEXAGON/HotwordEnrollmentXGoogleHEXAGON.apk|8639661f6fad570723bc6f2759da76604bd804fa
system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml|563a58554d9c0dd0608552b644fbf74519a447bb
system_ext/framework/com.android.hotwordenrollment.common.util.jar|bef92589e75a6da6043f85f4b9b0e85866429624
@@ -934,7 +934,7 @@ system_ext/lib64/libdiag_system.so|46b48593c913d5cbb05518b31721bb0f33e6c1ba
system_ext/lib64/libimscamera_jni.so;SYMLINK=system_ext/priv-app/ims/lib/arm64/libimscamera_jni.so|0394fbe375893f9aa2fee5e28e5c657575025a12
system_ext/lib64/libimsmedia_jni.so;SYMLINK=system_ext/priv-app/ims/lib/arm64/libimsmedia_jni.so|a8271a46c31ed50a1f7f94d7ec78fb534f432296
system_ext/lib64/vendor.qti.imsrtpservice@3.0.so|34da5e45ae4817ccff75c6b8d1d0c125ebd253ed
system_ext/priv-app/ims/ims.apk;NODEXPO|ed68ecd630ddbd49e88bd0b2e3b50ee35c334ef0
system_ext/priv-app/ims/ims.apk|ed68ecd630ddbd49e88bd0b2e3b50ee35c334ef0
# Radio (IMS) - from LA.UM.9.1.r1-13700-SMxxx0.QSSI13.0
vendor/bin/ims_rtp_daemon|514b4f3a8483c21526d98634aaf8f01e3a59328a
@@ -989,12 +989,12 @@ vendor/lib64/vendor.qti.imsrtpservice@3.0.so;MODULE_SUFFIX=_vendor|460e589128fce
# Radio (system) - from LA.QSSI.12.0.r1-05800.02-qssi.0
product/etc/permissions/telephony_product_privapp-permissions-qti.xml|42f4553b61731e56d253766554d4479519cea3ff
system_ext/app/QtiTelephonyService/QtiTelephonyService.apk;NODEXPO|a32f88ddcc8f9cba18aa5697ee5bd52201e89b13
system_ext/app/QtiTelephonyService/QtiTelephonyService.apk|a32f88ddcc8f9cba18aa5697ee5bd52201e89b13
system_ext/etc/permissions/qcrilhook.xml|30397e293b2c40e6b7a1d11c2a615cdd05de625a
system_ext/etc/permissions/telephonyservice.xml|b7831598d3c19c6ce4ef431d1cc44d94c3c35a8d
system_ext/framework/qcrilhook.jar|f2888f922b8347417dfa86741feb8348795fce6f
system_ext/framework/qti-telephony-common.jar|a22ed88e0cd81ea8c4788c26494c8b5fd666ec7c
system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk;NODEXPO|60af440aae61fcd6939af56a0b94d9b9ef5ebd55
system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk|60af440aae61fcd6939af56a0b94d9b9ef5ebd55
# Radio (vendor) - from LA.UM.9.1.r1-13700-SMxxx0.QSSI13.0
vendor/bin/ATFWD-daemon|98b712409955b49330f7e179da8019be723850a3
@@ -1174,7 +1174,7 @@ vendor/lib64/libscveObjectTracker.so|0cf7d3128ae0019d882da5c9d8d9186d549177d1
vendor/lib64/libscveObjectTracker_stub.so|6f45aa215de07dfeacf811c06af750206bb1cf58
# Soter
-app/SoterService/SoterService.apk;NODEXPO
vendor/app/SoterService/SoterService.apk
vendor/bin/hw/vendor.qti.hardware.soter@1.0-service
vendor/etc/init/vendor.qti.hardware.soter@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.soter@1.0-impl.so
@@ -1190,7 +1190,7 @@ vendor/lib64/libthermalclient.so|0a12301d1557583db10f730d1d3cced841448b99
vendor/bin/thermal-engine|01cb7dc998c39016b54089c18921ad7d65b3c675
# Time - from LA.UM.9.1.r1-13700-SMxxx0.QSSI13.0
vendor/app/TimeService/TimeService.apk;NODEXPO|92317b3b72586489456d37057b4c3c8e55863923
vendor/app/TimeService/TimeService.apk|92317b3b72586489456d37057b4c3c8e55863923
vendor/bin/time_daemon|48401d7f85c87aa3e12ce7b4a969a50cbf59c293
vendor/etc/init/init.time_daemon.rc|b253ca2a498757e14e1d7a051bf504ae09218f51
vendor/lib64/libtime_genoff.so|8bb116ad297a5e4a94da2f10509509cb6e863a5f
@@ -1255,7 +1255,7 @@ system_ext/lib64/libwfduibcsrc.so|67630b36b0a75ceb0cb32d51b8254b0d2b6d6f92
system_ext/lib64/libwfduibcsrcinterface.so|fc3e7f6b3d1f1d50cc54d2037f8cb30785731f60
system_ext/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so|c5e697e8c93fa4e752830baf0a8626f8cf40e793
system_ext/lib64/vendor.qti.hardware.wifidisplaysession_aidl-V1-ndk.so|c3f9d7afb624fa739f0b64e7da010f7176136cb3
system_ext/priv-app/WfdService/WfdService.apk;NODEXPO|7a756afb81934a02cd54f8316b7922279766b043
system_ext/priv-app/WfdService/WfdService.apk|7a756afb81934a02cd54f8316b7922279766b043
# WiFi Display (vendor) - from LA.UM.9.1.r1-11500.02-SMxxx0.QSSI12.0
vendor/bin/wfdhdcphalservice|40c3d329f49cbb56286d6a550cc8b12ac95048df

1
setup-makefiles.py Executable file
View File

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

View File

@@ -1,76 +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=raphael
VENDOR=xiaomi
# 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=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}"
function vendor_imports() {
cat <<EOF >>"$1"
"device/xiaomi/raphael",
"hardware/qcom-caf/sm8150",
"hardware/qcom-caf/wlan",
"hardware/xiaomi",
"vendor/qcom/opensource/dataservices",
"vendor/qcom/opensource/commonsys-intf/display",
"vendor/qcom/opensource/commonsys/display",
"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 | \
vendor.qti.hardware.fm@1.0 | \
libmmosal | \
vendor.qti.hardware.wifidisplaysession@1.0 | \
vendor.qti.imsrtpservice@3.0)
echo "${1}_vendor"
;;
libgrallocutils | \
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
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
# Warning headers and guards
write_headers
write_makefiles "${MY_DIR}/proprietary-files.txt" true
# Finish
write_footers