Add multi-device templates and update normal templates

Change-Id: Ic197790f30d430df4db65297f387dafd340a3a46
This commit is contained in:
Michael Bestas
2020-12-27 22:56:17 +02:00
parent 8e4a039f11
commit 830a9cb8f5
6 changed files with 262 additions and 27 deletions

View File

@@ -0,0 +1,87 @@
#!/bin/bash
#
# 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.
#
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
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/lib/libsample5.so)
"${PATCHELF}" --replace-needed "libsample6.so" "libsample7.so" "${2}"
;;
vendor/lib/libsample7.so)
"${PATCHELF}" --set-soname "libsample7.so" "${2}"
;;
esac
}
# 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}"
if [ -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"

View File

@@ -0,0 +1,58 @@
#!/bin/bash
#
# 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.
#
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}"
# Initialize the helper for common
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true
# Warning headers and guards
write_headers "**** FILL IN ALL DEVICE NAMES, SPACE DELIMITED ****"
# The standard common blobs
write_makefiles "${MY_DIR}/proprietary-files.txt" true
# Finish
write_footers
if [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false
# Warning headers and guards
write_headers
# The standard device blobs
write_makefiles "${MY_DIR}/../${DEVICE}/proprietary-files.txt" true
# Finish
write_footers
fi

View File

@@ -0,0 +1,43 @@
#!/bin/bash
#
# 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.
#
function blob_fixup() {
case "${1}" in
vendor/lib/libsample1.so)
sed -i 's|/data/misc/sample1|/data/misc/sample2|g' "${2}"
;;
vendor/lib64/libsample2.so)
"${PATCHELF}" --remove-needed "libsample3.so" "${2}"
"${PATCHELF}" --add-needed "libsample4.so" "${2}"
;;
esac
}
# If we're being sourced by the common script that we called,
# stop right here. No need to go down the rabbit hole.
if [ "${BASH_SOURCE[0]}" != "${0}" ]; then
return
fi
set -e
export DEVICE=**** FILL IN DEVICE NAME ****
export DEVICE_COMMON=**** FILL IN COMMON NAME ****
export VENDOR=**** FILL IN VENDOR NAME ****
"./../../${VENDOR}/${DEVICE_COMMON}/extract-files.sh" "$@"

View File

@@ -0,0 +1,25 @@
#!/bin/bash
#
# 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.
#
set -e
export DEVICE=**** FILL IN DEVICE NAME ****
export DEVICE_COMMON=**** FILL IN COMMON NAME ****
export VENDOR=**** FILL IN VENDOR NAME ****
"./../../${VENDOR}/${DEVICE_COMMON}/setup-makefiles.sh" "$@"

View File

@@ -19,7 +19,7 @@
set -e set -e
DEVICE=**** FILL IN DEVICE NAME **** DEVICE=**** FILL IN DEVICE NAME ****
VENDOR=*** FILL IN VENDOR **** VENDOR=**** FILL IN VENDOR NAME ****
# Load extract_utils and do some sanity checks # Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}" MY_DIR="${BASH_SOURCE%/*}"
@@ -36,32 +36,54 @@ source "${HELPER}"
# Default to sanitizing the vendor folder before extraction # Default to sanitizing the vendor folder before extraction
CLEAN_VENDOR=true CLEAN_VENDOR=true
SECTION=
KANG=
while [ "$1" != "" ]; do KANG=
case "$1" in SECTION=
-n | --no-cleanup ) CLEAN_VENDOR=false
;; while [ "${#}" -gt 0 ]; do
-k | --kang) KANG="--kang" case "${1}" in
;; -n | --no-cleanup )
-s | --section ) shift
SECTION="$1"
CLEAN_VENDOR=false CLEAN_VENDOR=false
;; ;;
* ) SRC="$1" -k | --kang )
KANG="--kang"
;;
-s | --section )
SECTION="${2}"; shift
CLEAN_VENDOR=false
;;
* )
SRC="${1}"
;; ;;
esac esac
shift shift
done done
if [ -z "${SRC}" ]; then if [ -z "${SRC}" ]; then
SRC=adb SRC="adb"
fi fi
function blob_fixup() {
case "${1}" in
vendor/lib/libsample1.so)
sed -i 's|/data/misc/sample1|/data/misc/sample2|g' "${2}"
;;
vendor/lib64/libsample2.so)
"${PATCHELF}" --remove-needed "libsample3.so" "${2}"
"${PATCHELF}" --add-needed "libsample4.so" "${2}"
;;
vendor/lib/libsample5.so)
"${PATCHELF}" --replace-needed "libsample6.so" "libsample7.so" "${2}"
;;
vendor/lib/libsample7.so)
"${PATCHELF}" --set-soname "libsample7.so" "${2}"
;;
esac
}
# Initialize the helper # Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}" setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" ${KANG} --section "${SECTION}" extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
"${MY_DIR}/setup-makefiles.sh" "${MY_DIR}/setup-makefiles.sh"

View File

@@ -18,29 +18,29 @@
set -e set -e
DEVICE=*** FILL IN DEVICE **** DEVICE=**** FILL IN DEVICE NAME ****
VENDOR=*** FILL IN VENDOR **** VENDOR=**** FILL IN VENDOR NAME ****
# Load extract_utils and do some sanity checks # Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}" MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
ANDROID_ROOT="$MY_DIR"/../../.. ANDROID_ROOT="${MY_DIR}/../../.."
HELPER="$ANDROID_ROOT"/tools/extract-utils/extract_utils.sh HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
if [ ! -f "$HELPER" ]; then if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at $HELPER" echo "Unable to find helper script at ${HELPER}"
exit 1 exit 1
fi fi
. "$HELPER" source "${HELPER}"
# Initialize the helper # Initialize the helper
setup_vendor "$DEVICE" "$VENDOR" "$ANDROID_ROOT" setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
# Warning headers and guards # Warning headers and guards
write_headers write_headers
write_makefiles "$MY_DIR"/proprietary-files.txt write_makefiles "${MY_DIR}/proprietary-files.txt" true
# Finish # Finish
write_footers write_footers