Commit | Line | Data |
---|---|---|
0ece9c09 JA |
1 | #!/bin/bash |
2 | # | |
81e4f80c | 3 | # Copyright (C) 2016 The CyanogenMod Project |
0ece9c09 JA |
4 | # Copyright (C) 2017-2020 The LineageOS Project |
5 | # | |
81e4f80c | 6 | # SPDX-License-Identifier: Apache-2.0 |
0ece9c09 JA |
7 | # |
8 | ||
9 | set -e | |
10 | ||
0ece9c09 | 11 | DEVICE_COMMON=exynos9610-common |
81e4f80c | 12 | VENDOR=motorola |
0ece9c09 JA |
13 | |
14 | # Load extract_utils and do some sanity checks | |
15 | MY_DIR="${BASH_SOURCE%/*}" | |
16 | if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi | |
17 | ||
81e4f80c | 18 | ANDROID_ROOT="${MY_DIR}/../../.." |
0ece9c09 | 19 | |
81e4f80c | 20 | HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh" |
0ece9c09 JA |
21 | if [ ! -f "${HELPER}" ]; then |
22 | echo "Unable to find helper script at ${HELPER}" | |
23 | exit 1 | |
24 | fi | |
25 | source "${HELPER}" | |
26 | ||
81e4f80c MB |
27 | # Default to sanitizing the vendor folder before extraction |
28 | CLEAN_VENDOR=true | |
29 | ||
0ece9c09 | 30 | KANG= |
81e4f80c | 31 | SECTION= |
0ece9c09 JA |
32 | |
33 | while [ "${#}" -gt 0 ]; do | |
34 | case "${1}" in | |
35 | -n | --no-cleanup ) | |
36 | CLEAN_VENDOR=false | |
37 | ;; | |
38 | -k | --kang ) | |
39 | KANG="--kang" | |
40 | ;; | |
41 | -s | --section ) | |
42 | SECTION="${2}"; shift | |
43 | CLEAN_VENDOR=false | |
44 | ;; | |
45 | * ) | |
46 | SRC="${1}" | |
47 | ;; | |
48 | esac | |
49 | shift | |
50 | done | |
51 | ||
52 | if [ -z "${SRC}" ]; then | |
53 | SRC="adb" | |
54 | fi | |
55 | ||
56 | # Initialize the helper | |
81e4f80c | 57 | setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}" |
0ece9c09 | 58 | |
81e4f80c MB |
59 | extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" |
60 | extract "${MY_DIR}/proprietary-files-vendor.txt" "${SRC}" "${KANG}" --section "${SECTION}" | |
b6ba0b29 | 61 | |
7ec08a55 | 62 | # Fix proprietary blobs |
74adaccc | 63 | BLOB_ROOT="${ANDROID_ROOT}"/vendor/"${VENDOR}"/"${DEVICE_COMMON}"/proprietary |
ade67098 | 64 | |
74adaccc | 65 | "${PATCHELF}" --replace-needed "libmedia.so" "libmedia_ims.so" "${BLOB_ROOT}"/lib64/libmediaadaptor.so |
ade67098 | 66 | |
f490fbdf NJ |
67 | "${PATCHELF}" --replace-needed "libnetutils.so" "libip_checksum_shim.so" "${BLOB_ROOT}"/vendor/bin/wfc-pkt-router |
68 | ||
f8038faf TZ |
69 | "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib/libexynosdisplay.so |
70 | "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib64/libexynosdisplay.so | |
71 | "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib/hw/hwcomposer.exynos9610.so | |
72 | "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib64/hw/hwcomposer.exynos9610.so | |
5954fa54 NJ |
73 | "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib/sensors.rp.so |
74 | "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib64/sensors.rp.so | |
f8038faf | 75 | |
74adaccc NJ |
76 | for LIBAUDIOPROXY_SHIM in $(grep -L "libaudioproxy_shim.so" "${BLOB_ROOT}"/vendor/lib/libaudioproxy.so); do |
77 | "${PATCHELF}" --add-needed libaudioproxy_shim.so "${LIBAUDIOPROXY_SHIM}" | |
ade67098 | 78 | done |
ddebab0f NJ |
79 | for LIBMEMSET in $(grep -L "libmemset_shim.so" "${BLOB_ROOT}"/vendor/bin/charge_only_mode); do |
80 | "${PATCHELF}" --add-needed "libmemset_shim.so" "${LIBMEMSET}" | |
ade67098 | 81 | done |
74adaccc NJ |
82 | for LIBDEMANGLE in $(grep -L "libdemangle.so" "${BLOB_ROOT}"/vendor/lib/libhifills.so); do |
83 | "${PATCHELF}" --add-needed "libdemangle.so" "${LIBDEMANGLE}" | |
ade67098 | 84 | done |
74adaccc NJ |
85 | for LIBDEMANGLE64 in $(grep -L "libdemangle.so" "${BLOB_ROOT}"/vendor/lib64/libhifills.so); do |
86 | "${PATCHELF}" --add-needed "libdemangle.so" "${LIBDEMANGLE64}" | |
ade67098 | 87 | done |
7ec08a55 | 88 | |
1dff018f NJ |
89 | sed -i 's|/system/framework|/vendor/framework|' "${BLOB_ROOT}"/vendor/etc/permissions/com.motorola.motosignature.xml |
90 | ||
dd26fd11 | 91 | # Remove libhidltransport dependency |
74adaccc | 92 | "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-rbs |
74adaccc NJ |
93 | "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.0-impl.samsung.so |
94 | "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.1-impl.samsung.so | |
95 | "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@2.0-impl.samsung.so | |
74adaccc | 96 | "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/vendor.samsung.hardware.gnss@1.0-impl.so |
dd26fd11 JA |
97 | |
98 | # Remove libhwbinder dependency | |
74adaccc NJ |
99 | "${PATCHELF}" --remove-needed "libhwbinder.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.0-impl.samsung.so |
100 | "${PATCHELF}" --remove-needed "libhwbinder.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.1-impl.samsung.so | |
101 | "${PATCHELF}" --remove-needed "libhwbinder.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@2.0-impl.samsung.so | |
96e9b134 | 102 | |
0ece9c09 | 103 | "${MY_DIR}/setup-makefiles.sh" |