瀏覽代碼

fixup! e3q: Initial commit

David Wronek 4 月之前
父節點
當前提交
889613cdcc
共有 7 個文件被更改,包括 139 次插入532 次删除
  1. 3 3
      BoardConfig.mk
  2. 9 2
      device.mk
  3. 77 0
      extract-files.py
  4. 0 96
      extract-files.sh
  5. 49 361
      proprietary-files.txt
  6. 1 0
      setup-makefiles.py
  7. 0 70
      setup-makefiles.sh

+ 3 - 3
BoardConfig.mk

@@ -4,9 +4,9 @@
 # SPDX-License-Identifier: Apache-2.0
 # SPDX-License-Identifier: Apache-2.0
 #
 #
 
 
-BUILD_BROKEN_DUP_RULES := true
-BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
-BUILD_BROKEN_INCORRECT_PARTITION_IMAGES := true
+#BUILD_BROKEN_DUP_RULES := true
+#BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
+#BUILD_BROKEN_INCORRECT_PARTITION_IMAGES := true
 
 
 DEVICE_PATH := device/samsung/e3q
 DEVICE_PATH := device/samsung/e3q
 
 

+ 9 - 2
device.mk

@@ -27,6 +27,12 @@ PRODUCT_AAPT_PREF_CONFIG := xxxhdpi
 BOARD_SHIPPING_API_LEVEL := 34
 BOARD_SHIPPING_API_LEVEL := 34
 PRODUCT_SHIPPING_API_LEVEL := $(BOARD_SHIPPING_API_LEVEL)
 PRODUCT_SHIPPING_API_LEVEL := $(BOARD_SHIPPING_API_LEVEL)
 
 
+# Audio
+PRODUCT_PACKAGES += \
+    libagmmixer
+
+# Bluetooth
+
 # Boot animation
 # Boot animation
 TARGET_SCREEN_HEIGHT := 3120
 TARGET_SCREEN_HEIGHT := 3120
 TARGET_SCREEN_WIDTH := 1440
 TARGET_SCREEN_WIDTH := 1440
@@ -86,7 +92,8 @@ PRODUCT_PACKAGES += \
 
 
 # RIL
 # RIL
 PRODUCT_PACKAGES += \
 PRODUCT_PACKAGES += \
-    libnetutils.vendor
+    libnetutils.vendor \
+    libsecril-client
 
 
 # Rootdir
 # Rootdir
 PRODUCT_PACKAGES += \
 PRODUCT_PACKAGES += \
@@ -176,7 +183,7 @@ PRODUCT_COPY_FILES += \
 PRODUCT_PACKAGES += \
 PRODUCT_PACKAGES += \
     libcrypto-v33
     libcrypto-v33
 
 
-# WiFi firmware symlinks
+# Wi-Fi
 PRODUCT_PACKAGES += \
 PRODUCT_PACKAGES += \
     firmware_wlanmdsp.otaupdate_symlink \
     firmware_wlanmdsp.otaupdate_symlink \
     firmware_wlan_mac.bin_symlink \
     firmware_wlan_mac.bin_symlink \

+ 77 - 0
extract-files.py

@@ -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.file import File
+from extract_utils.fixups_blob import (
+    BlobFixupCtx,
+    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 = [
+    # FIXME
+    'device/samsung/e3q',
+    'hardware/samsung',
+    'kernel/samsung/sm8650',
+    'kernel/samsung/sm8650-modules',
+    'hardware/qcom-caf/sm8650',
+    'vendor/qcom/opensource/commonsys/display',
+    'vendor/qcom/opensource/commonsys-intf/display',
+    'hardware/qcom-caf/sm8650/data-ipa-cfg-mgr',
+    'vendor/qcom/opensource/dataservices',
+    'hardware/qcom-caf/wlan',
+    'packages/apps/FMRadio/jni/fmr',
+    'frameworks/native/libs/vibrator',
+]
+
+
+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,
+    (
+        'libsecril-client'
+    ): lib_fixup_vendor_suffix,
+    (
+        'libagmclient',
+        'libpalclient',
+        'libwpa_client',
+    ): lib_fixup_remove,
+}
+
+
+blob_fixups: blob_fixups_user_type = {
+    ('vendor/bin/hw/vendor.qti.hardware.display.composer-service', 'vendor/lib64/vendor.qti.hardware.display.composer3-V1-ndk.so'): blob_fixup()
+        .replace_needed('android.hardware.graphics.composer3-V2-ndk.so', 'android.hardware.graphics.composer3-V3-ndk.so')
+        .replace_needed('vendor.qti.hardware.display.config-V8-ndk.so', 'vendor.qti.hardware.display.config-V11-ndk.so'),
+    ('vendor/lib64/rfs/dsp/libSnpeHtpV75Skel.so', 'vendor/lib64/rfs/dsp/snap/libQnnHtpV75Skel.so'): blob_fixup()
+        .replace_needed('libc++.so.1', 'libc++.so')
+        .replace_needed('libc++abi.so.1', 'libc++abi.so.1'),
+}  # fmt: skip
+
+module = ExtractUtilsModule(
+    'e3q',
+    'samsung',
+    blob_fixups=blob_fixups,
+    lib_fixups=lib_fixups,
+    namespace_imports=namespace_imports,
+    check_elf=True
+)
+
+if __name__ == '__main__':
+    utils = ExtractUtils.device(module)
+    utils.run()

+ 0 - 96
extract-files.sh

@@ -1,96 +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=e3q
-VENDOR=samsung
-
-# 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}/../../.."
-
-# 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
-
-ONLY_FIRMWARE=
-KANG=
-SECTION=
-CARRIER_SKIP_FILES=()
-
-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/lib64/libhyper.so|vendor/lib64/libspukeymintdeviceutils.so|vendor/lib64/hw/gatekeeper.mdfpp.so|vendor/lib64/libcppcose_rkp.so|vendor/lib64/libspukeymint.so|vendor/lib64/libhermes.so|vendor/lib64/libese-grdg.so|vendor/lib64/libspukeymintutils.so|vendor/lib64/libskeymint10device.so|vendor/lib64/liblbs_core.so|vendor/lib64/liboemcrypto.so|vendor/lib64/libwifi-hal-qcom.so|vendor/lib64/libpuresoftkeymasterdevice.so|vendor/lib64/libpal_net_if.so|vendor/lib64/libsfp_sensor.so|vendor/lib64/libkeystore-engine-wifi-hidl.so|vendor/lib64/libkeymaster_portable.so|vendor/lib64/mediacas/libclearkeycasplugin.so|vendor/lib64/libqcc_sdk.so|vendor/lib64/libdk_vnd_service_core.so|vendor/lib64/libwifi-hal.so|vendor/lib64/libtlpd_crypto.so|vendor/lib64/libsec-ril.so|vendor/lib64/libcppbor_external.so|vendor/lib64/libucm_tlc_tz_esecomm.so|vendor/lib64/libqms.so|vendor/lib64/libskeymint_cli.so|vendor/lib64/libengmode15.so|vendor/lib64/libkeymaster4_1support.so|vendor/lib64/libizat_core.so|vendor/lib64/libspcom.so|vendor/lib64/libFaceService.so|vendor/lib64/uwb_uci.hal.so|vendor/lib64/libnicm_utils.so|vendor/lib64/mediadrm/libdrmclearkeyplugin.so|vendor/lib64/libkeymaster4support.so|vendor/lib64/libsdmextension.so)
-            [ "$2" = "" ] && return 0
-            grep -q "android.hardware.security.rkp-V3-ndk.so" "${2}" || ${PATCHELF} --add-needed "android.hardware.security.rkp-V3-ndk.so" "${2}"
-            ${PATCHELF} --replace-needed libcrypto.so libcrypto-v33.so "${2}"
-            #${PATCHELF} --replace-needed libcppbor_external.so libcppbor.so "${2}"
-            ;;
-        vendor/lib64/hw/gatekeeper.mdfpp.so)
-            [ "$2" = "" ] && return 0
-            ${PATCHELF} --replace-needed libcrypto.so libcrypto-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}"
-
-if [ -z "${ONLY_FIRMWARE}" ]; then
-    extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
-fi
-
-"${MY_DIR}/setup-makefiles.sh"

文件差異過大導致無法顯示
+ 49 - 361
proprietary-files.txt


+ 1 - 0
setup-makefiles.py

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

+ 0 - 70
setup-makefiles.sh

@@ -1,70 +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=e3q
-VENDOR=samsung
-
-# 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/samsung/e3q",
-		"hardware/qcom-caf/sm8650",
-		"hardware/qcom-caf/wlan",
-		"hardware/samsung",
-		"vendor/qcom/opensource/commonsys/display",
-		"vendor/qcom/opensource/commonsys-intf/display",
-		"vendor/qcom/opensource/dataservices",
-EOF
-}
-
-function lib_to_package_fixup_vendor_variants() {
-    if [ "$2" != "vendor" ]; then
-        return 1
-    fi
-
-    case "$1" in
-        [email protected] | \
-            [email protected])
-            echo "$1-vendor"
-            ;;
-        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"
-
-# Finish
-write_footers

部分文件因文件數量過多而無法顯示