android_device_tecno_LG8n/extract-files.sh
bengris32 8d85348690 LG8n: Use enable instead of start for Neural Networks service
* The MTK Neural Networks service is started via a property trigger.
  This HAL starts a lot earlier than other HALs since it is started
  with start instead of enable, the difference between them being
  that start will immediately cause the service to try and start, while
  enable effectively removes the disabled attribute from the service
  (so in the case of a HAL, it will be started with all the other services
  in class hal instead of immediately).

* This initially didn't have any side effects until I noticed the Neural Networks
  service constantly crashing in offline charger mode. To fix this, simply
  convert the start command to an enable to ensure that this service is not
  only started at the right time (in class hal), but also only started when
  needed (and not in offline charger mode).

Change-Id: Iacf310fb2211117aaf028ad6bf0814a7d447cf53
Signed-off-by: bengris32 <bengris32@protonmail.ch>
Signed-off-by: Shirayuki39 <lorddemecrius83@proton.me>
2024-07-17 08:07:12 +08:00

107 lines
3.6 KiB
Bash
Executable file

#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
DEVICE=LG8n
VENDOR=tecno
# 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}"
# Default to sanitizing the vendor folder before extraction
CLEAN_VENDOR=true
KANG=
SECTION=
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/bin/hw/android.hardware.vibrator-service.mediatek)
"$PATCHELF" --replace-needed "android.hardware.vibrator-V2-ndk_platform.so" "android.hardware.vibrator-V2-ndk.so" "$2"
;;
vendor/bin/hw/android.hardware.lights-service.mediatek)
"$PATCHELF" --replace-needed "android.hardware.light-V1-ndk_platform.so" "android.hardware.light-V1-ndk.so" "$2"
;;
vendor/lib/hw/audio.primary.mt6789.so)
;&
vendor/lib64/hw/audio.primary.mt6789.so)
"${PATCHELF}" --replace-needed "libutils.so" "libutils-v31.so" "${2}"
;;
vendor/bin/hw/mt6789/camerahalserver)
"${PATCHELF}" --replace-needed "libutils.so" "libutils-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libbinder.so" "libbinder-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libhidlbase.so" "libhidlbase-v31.so" "${2}"
;;
vendor/bin/hw/android.hardware.gnss-service.mediatek |\
vendor/lib64/hw/android.hardware.gnss-impl-mediatek.so)
"$PATCHELF" --replace-needed "android.hardware.gnss-V1-ndk_platform.so" "android.hardware.gnss-V1-ndk.so" "$2"
;;
vendor/etc/init/android.hardware.media.c2@1.2-mediatek.rc)
sed -i 's/@1.2-mediatek/@1.2-mediatek-64b/g' "${2}"
;;
vendor/bin/hw/android.hardware.media.c2@1.2-mediatek-64b)
"${PATCHELF}" --replace-needed "libavservices_minijail_vendor.so" "libavservices_minijail.so" "${2}"
;;
vendor/etc/init/android.hardware.neuralnetworks-shim-service-mtk.rc)
sed -i 's/start/enable/' "$2"
;;
vendor/lib*/hw/mt6789/vendor.mediatek.hardware.pq@2.15-impl.so)
"$PATCHELF" --replace-needed "libutils.so" "libutils-v32.so" "$2"
;;
vendor/bin/hw/vendor.mediatek.hardware.pq@2.2-service)
"${PATCHELF}" --replace-needed "libbinder.so" "libbinder-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libhidlbase.so" "libhidlbase-v31.so" "${2}"
"${PATCHELF}" --replace-needed "libutils.so" "libutils-v31.so" "${2}"
;;
vendor/bin/hw/vendor.mediatek.hardware.mtkpower@1.0-service)
"${PATCHELF}" --replace-needed "android.hardware.power-V2-ndk_platform.so" "android.hardware.power-V2-ndk.so" "${2}"
;;
esac
}
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
"${MY_DIR}/setup-makefiles.sh"