exynos9610: sepolicy: Bringup for Android 12
[GitHub/LineageOS/android_device_motorola_exynos9610-common.git] / extract-files.sh
1 #!/bin/bash
2 #
3 # Copyright (C) 2016 The CyanogenMod Project
4 # Copyright (C) 2017-2020 The LineageOS Project
5 #
6 # SPDX-License-Identifier: Apache-2.0
7 #
8
9 set -e
10
11 DEVICE_COMMON=exynos9610-common
12 VENDOR=motorola
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
18 ANDROID_ROOT="${MY_DIR}/../../.."
19
20 HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
21 if [ ! -f "${HELPER}" ]; then
22 echo "Unable to find helper script at ${HELPER}"
23 exit 1
24 fi
25 source "${HELPER}"
26
27 # Default to sanitizing the vendor folder before extraction
28 CLEAN_VENDOR=true
29
30 KANG=
31 SECTION=
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
57 setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
58
59 extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
60 extract "${MY_DIR}/proprietary-files-vendor.txt" "${SRC}" "${KANG}" --section "${SECTION}"
61
62 # Fix proprietary blobs
63 BLOB_ROOT="${ANDROID_ROOT}"/vendor/"${VENDOR}"/"${DEVICE_COMMON}"/proprietary
64
65 "${PATCHELF}" --replace-needed "libmedia.so" "libmedia_ims.so" "${BLOB_ROOT}"/lib64/libmediaadaptor.so
66
67 for LIBAUDIOPROXY_SHIM in $(grep -L "libaudioproxy_shim.so" "${BLOB_ROOT}"/vendor/lib/libaudioproxy.so); do
68 "${PATCHELF}" --add-needed libaudioproxy_shim.so "${LIBAUDIOPROXY_SHIM}"
69 done
70 for LIBMEMSET in $(grep -L "libmemset.so" "${BLOB_ROOT}"/vendor/bin/charge_only_mode); do
71 "${PATCHELF}" --add-needed "libmemset.so" "${LIBMEMSET}"
72 done
73 for LIBDEMANGLE in $(grep -L "libdemangle.so" "${BLOB_ROOT}"/vendor/lib/libhifills.so); do
74 "${PATCHELF}" --add-needed "libdemangle.so" "${LIBDEMANGLE}"
75 done
76 for LIBDEMANGLE64 in $(grep -L "libdemangle.so" "${BLOB_ROOT}"/vendor/lib64/libhifills.so); do
77 "${PATCHELF}" --add-needed "libdemangle.so" "${LIBDEMANGLE64}"
78 done
79
80 sed -i 's|/system/framework|/vendor/framework|' "${BLOB_ROOT}"/vendor/etc/permissions/com.motorola.motosignature.xml
81
82 # Remove libhidltransport dependency
83 "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-rbs
84 "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.0-impl.samsung.so
85 "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.1-impl.samsung.so
86 "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@2.0-impl.samsung.so
87 "${PATCHELF}" --remove-needed "libhidltransport.so" "${BLOB_ROOT}"/vendor/lib64/hw/vendor.samsung.hardware.gnss@1.0-impl.so
88
89 # Remove libhwbinder dependency
90 "${PATCHELF}" --remove-needed "libhwbinder.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.0-impl.samsung.so
91 "${PATCHELF}" --remove-needed "libhwbinder.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@1.1-impl.samsung.so
92 "${PATCHELF}" --remove-needed "libhwbinder.so" "${BLOB_ROOT}"/vendor/lib64/hw/android.hardware.gnss@2.0-impl.samsung.so
93
94 "${MY_DIR}/setup-makefiles.sh"