cm: extract_utils: Add a firmware extraction method
Change-Id: If14f6932cbdccf45ca0cc91c403e951363e91260
This commit is contained in:
parent
3a03012242
commit
a516c2f0ac
@ -19,6 +19,7 @@ PRODUCT_COPY_FILES_LIST=()
|
|||||||
PRODUCT_PACKAGES_LIST=()
|
PRODUCT_PACKAGES_LIST=()
|
||||||
PACKAGE_LIST=()
|
PACKAGE_LIST=()
|
||||||
VENDOR_STATE=-1
|
VENDOR_STATE=-1
|
||||||
|
VENDOR_RADIO_STATE=-1
|
||||||
COMMON=-1
|
COMMON=-1
|
||||||
ARCHES=
|
ARCHES=
|
||||||
FULLY_DEODEXED=-1
|
FULLY_DEODEXED=-1
|
||||||
@ -74,8 +75,10 @@ function setup_vendor() {
|
|||||||
|
|
||||||
if [ "$5" == "true" ] || [ "$5" == "1" ]; then
|
if [ "$5" == "true" ] || [ "$5" == "1" ]; then
|
||||||
VENDOR_STATE=1
|
VENDOR_STATE=1
|
||||||
|
VENDOR_RADIO_STATE=1
|
||||||
else
|
else
|
||||||
VENDOR_STATE=0
|
VENDOR_STATE=0
|
||||||
|
VENDOR_RADIO_STATE=0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -537,6 +540,26 @@ function write_makefiles() {
|
|||||||
write_product_packages
|
write_product_packages
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# append_firmware_calls_to_makefiles:
|
||||||
|
#
|
||||||
|
# Appends to Android.mk the calls to all images present in radio folder
|
||||||
|
# (filesmap file used by releasetools to map firmware images should be kept in the device tree)
|
||||||
|
#
|
||||||
|
function append_firmware_calls_to_makefiles() {
|
||||||
|
cat << EOF >> "$ANDROIDMK"
|
||||||
|
ifeq (\$(LOCAL_PATH)/radio, \$(wildcard \$(LOCAL_PATH)/radio))
|
||||||
|
|
||||||
|
RADIO_FILES := \$(wildcard \$(LOCAL_PATH)/radio/*)
|
||||||
|
\$(foreach f, \$(notdir \$(RADIO_FILES)), \\
|
||||||
|
\$(call add-radio-file,radio/\$(f)))
|
||||||
|
\$(call add-radio-file,../../../device/$VENDOR/$DEVICE/radio/filesmap)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# get_file:
|
# get_file:
|
||||||
#
|
#
|
||||||
@ -770,3 +793,45 @@ function extract() {
|
|||||||
# Don't allow failing
|
# Don't allow failing
|
||||||
set -e
|
set -e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# extract_firmware:
|
||||||
|
#
|
||||||
|
# $1: file containing the list of items to extract
|
||||||
|
# $2: path to extracted radio folder
|
||||||
|
#
|
||||||
|
function extract_firmware() {
|
||||||
|
if [ -z "$OUTDIR" ]; then
|
||||||
|
echo "Output dir not set!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
parse_file_list "$1"
|
||||||
|
|
||||||
|
# Don't allow failing
|
||||||
|
set -e
|
||||||
|
|
||||||
|
local FILELIST=( ${PRODUCT_COPY_FILES_LIST[@]} )
|
||||||
|
local COUNT=${#FILELIST[@]}
|
||||||
|
local SRC="$2"
|
||||||
|
local OUTPUT_DIR="$CM_ROOT"/"$OUTDIR"/radio
|
||||||
|
|
||||||
|
if [ "$VENDOR_RADIO_STATE" -eq "0" ]; then
|
||||||
|
echo "Cleaning firmware output directory ($OUTPUT_DIR).."
|
||||||
|
rm -rf "${OUTPUT_DIR:?}/"*
|
||||||
|
VENDOR_RADIO_STATE=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Extracting $COUNT files in $1 from $SRC:"
|
||||||
|
|
||||||
|
for (( i=1; i<COUNT+1; i++ )); do
|
||||||
|
local FILE="${FILELIST[$i-1]}"
|
||||||
|
printf ' - %s \n' "/radio/$FILE"
|
||||||
|
|
||||||
|
if [ ! -d "$OUTPUT_DIR" ]; then
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
fi
|
||||||
|
cp "$SRC/$FILE" "$OUTPUT_DIR/$FILE"
|
||||||
|
chmod 644 "$OUTPUT_DIR/$FILE"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user