diff options
Diffstat (limited to 'extract-files.sh')
-rwxr-xr-x | extract-files.sh | 124 |
1 files changed, 64 insertions, 60 deletions
diff --git a/extract-files.sh b/extract-files.sh index 6b87d38..fc794bc 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -1,46 +1,49 @@ #!/bin/bash # -# Copyright (C) 2018 The LineageOS Project +# Copyright (C) 2016 The CyanogenMod Project +# Copyright (C) 2017-2020 The LineageOS 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. +# SPDX-License-Identifier: Apache-2.0 # set -e -DEVICE_COMMON=sdm660-common -VENDOR=xiaomi - # Load extract_utils and do some sanity checks MY_DIR="${BASH_SOURCE%/*}" -if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi +if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi -LINEAGE_ROOT="$MY_DIR"/../../.. +ANDROID_ROOT="${MY_DIR}/../../.." -HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh -if [ ! -f "$HELPER" ]; then - echo "Unable to find helper script at $HELPER" +HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh" +if [ ! -f "${HELPER}" ]; then + echo "Unable to find helper script at ${HELPER}" exit 1 fi -. "$HELPER" +source "${HELPER}" # Default to sanitizing the vendor folder before extraction CLEAN_VENDOR=true +ONLY_COMMON= +ONLY_DEVICE_COMMON= +ONLY_TARGET= +KANG= +SECTION= + while [ "${#}" -gt 0 ]; do case "${1}" in + --only-common ) + ONLY_COMMON=true + ;; + --only-device-common ) + ONLY_DEVICE_COMMON=true + ;; + --only-target ) + ONLY_TARGET=true + ;; -n | --no-cleanup ) - CLEAN_VENDOR=false - ;; + CLEAN_VENDOR=false + ;; -k | --kang ) KANG="--kang" ;; @@ -55,55 +58,56 @@ while [ "${#}" -gt 0 ]; do shift done -if [ -z "$SRC" ]; then - SRC=adb +if [ -z "${SRC}" ]; then + SRC="adb" fi function blob_fixup() { case "${1}" in - system_ext/etc/init/dpmd.rc) - sed -i "s|/system/product/bin/|/system/system_ext/bin/|g" "${2}" - ;; - system_ext/etc/permissions/com.qti.dpmframework.xml | system_ext/etc/permissions/dpmapi.xml | system_ext/etc/permissions/telephonyservice.xml) - sed -i "s|/system/product/framework/|/system/system_ext/framework/|g" "${2}" - ;; - system_ext/etc/permissions/qcrilhook.xml) - sed -i 's|/product/framework/qcrilhook.jar|/system_ext/framework/qcrilhook.jar|g' "${2}" - ;; - system_ext/lib64/libdpmframework.so) - "${PATCHELF}" --add-needed "libshim_dpmframework.so" "${2}" - ;; - vendor/bin/mlipayd@1.1) - "${PATCHELF}" --remove-needed vendor.xiaomi.hardware.mtdservice@1.0.so "${2}" - ;; - - vendor/lib64/libmlipay.so | vendor/lib64/libmlipay@1.1.so) - "${PATCHELF}" --remove-needed vendor.xiaomi.hardware.mtdservice@1.0.so "${2}" - sed -i "s|/system/etc/firmware|/vendor/firmware\x0\x0\x0\x0|g" "${2}" - ;; + system_ext/etc/init/dpmd.rc) + sed -i "s|/system/product/bin/|/system/system_ext/bin/|g" "${2}" + ;; + system_ext/etc/permissions/com.qti.dpmframework.xml | system_ext/etc/permissions/dpmapi.xml | system_ext/etc/permissions/telephonyservice.xml) + sed -i "s|/system/product/framework/|/system/system_ext/framework/|g" "${2}" + ;; + system_ext/etc/permissions/qcrilhook.xml) + sed -i 's|/product/framework/qcrilhook.jar|/system_ext/framework/qcrilhook.jar|g' "${2}" + ;; + system_ext/lib64/libdpmframework.so) + "${PATCHELF}" --add-needed "libshim_dpmframework.so" "${2}" + ;; + vendor/bin/mlipayd@1.1) + "${PATCHELF}" --remove-needed vendor.xiaomi.hardware.mtdservice@1.0.so "${2}" + ;; + vendor/lib64/libmlipay.so | vendor/lib64/libmlipay@1.1.so) + "${PATCHELF}" --remove-needed vendor.xiaomi.hardware.mtdservice@1.0.so "${2}" + sed -i "s|/system/etc/firmware|/vendor/firmware\x0\x0\x0\x0|g" "${2}" + ;; esac } -# Initialize the common helper -setup_vendor "$DEVICE_COMMON" "$VENDOR" "$LINEAGE_ROOT" true $CLEAN_VENDOR +if [ -z "${ONLY_TARGET}" ] && [ -z "${ONLY_DEVICE_COMMON}" ]; then + # Initialize the helper for common device + setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}" -extract "$MY_DIR"/proprietary-files.txt "$SRC" \ - "${KANG}" --section "${SECTION}" -extract "$MY_DIR"/proprietary-files-fm.txt "$SRC" \ - "${KANG}" --section "${SECTION}" + extract "${MY_DIR}/proprietary-files.txt" "${SRC}" ${KANG} --section "${SECTION}" + extract "${MY_DIR}/proprietary-files-fm.txt" "${SRC}" "${KANG}" --section "${SECTION}" +fi -if [ -s "$MY_DIR"/../$DEVICE_SPECIFIED_COMMON/proprietary-files.txt ];then +if [ -z "${ONLY_COMMON}" ] && [ -z "${ONLY_TARGET}" ] && [ -s "${MY_DIR}/../${DEVICE_SPECIFIED_COMMON}/proprietary-files.txt" ];then # Reinitialize the helper for device specified common - setup_vendor "$DEVICE_SPECIFIED_COMMON" "$VENDOR" "$LINEAGE_ROOT" false "$CLEAN_VENDOR" - extract "$MY_DIR"/../$DEVICE_SPECIFIED_COMMON/proprietary-files.txt "$SRC" \ - "${KANG}" --section "${SECTION}" + source "${MY_DIR}/../${DEVICE_SPECIFIED_COMMON}/extract-files.sh" + setup_vendor "${DEVICE_SPECIFIED_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}" + + extract "${MY_DIR}/../${DEVICE_SPECIFIED_COMMON}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" fi -if [ -s "$MY_DIR"/../$DEVICE/proprietary-files.txt ]; then +if [ -z "${ONLY_COMMON}" ] && [ -z "${ONLY_DEVICE_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then # Reinitialize the helper for device - setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT" false "$CLEAN_VENDOR" - extract "$MY_DIR"/../$DEVICE/proprietary-files.txt "$SRC" \ - "${KANG}" --section "${SECTION}" + source "${MY_DIR}/../${DEVICE}/extract-files.sh" + setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}" + + extract "${MY_DIR}/../${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" fi -"$MY_DIR"/setup-makefiles.sh +"${MY_DIR}/setup-makefiles.sh" |