This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
device_oneplus_avicii-Droidx/extract-files.sh
LuK1337 9c9e8bdcd2 sm8250-common: Unlock gc5035 camera
This change lets us use gc5035 camera, which was blocked by OnePlus long
time ago after people discovered its *magic* capabilities. By default
only `com.oem.autotest` can use it, however if we replace the first
character with a NULL byte, then strncmp returns 0, and thus we pass the
check and allow everyone to use it.

You can see the logs below that led me to discover that behavior.

[DEBUG  ] JIANJIA.cpp:89 PretendOpenCamera() logicalCameraId 4, m_ClientPackageName 0
[DEBUG  ] STELLA.cpp:1445 informKernel() force: -1 value: 6 buf: 5
[DEBUG  ] chxextensionmodule.cpp:1005 ExtendOpen() You shall not pass 0
[DEBUG  ] chxextensioninterface.cpp:298 chi_extend_open() [OP_EXT] OPEN_CAMERA X
[ERROR][HAL    ] camxhal3module.cpp:772 ProcessCameraOpen() Camera Open failed with error status = CamxResultEInvalidArg

Change-Id: I9b3e4e55f07cef40886e09941f7ed0523cdf8cfa
2022-03-05 01:35:32 +01:00

88 lines
2.2 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
# 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
ONLY_COMMON=
ONLY_TARGET=
KANG=
SECTION=
while [ "${#}" -gt 0 ]; do
case "${1}" in
--only-common )
ONLY_COMMON=true
;;
--only-target )
ONLY_TARGET=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
system_ext/lib64/libwfdnative.so)
sed -i "s/android.hidl.base@1.0.so/libhidlbase.so\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/" "${2}"
;;
vendor/lib64/hw/com.qti.chi.override.so)
sed -i "s/com.oem.autotest/\x00om.oem.autotest/" "${2}"
;;
esac
}
if [ -z "${ONLY_TARGET}" ]; 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}"
fi
if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
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"