extract_utils: make get_file() able to search paths with and w/o /system prefix
Change-Id: I75eba627646caa8ceb8a30575124c57e5ee9445c
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
diff --git a/build/tools/extract_utils.sh b/build/tools/extract_utils.sh
index c79e907..e195750 100644
--- a/build/tools/extract_utils.sh
+++ b/build/tools/extract_utils.sh
@@ -754,7 +754,8 @@
return 1
else
# try to copy
- cp -r "$SRC/$1" "$2" 2>/dev/null && return 0
+ cp -r "$SRC/$1" "$2" 2>/dev/null && return 0
+ cp -r "$SRC/${1#/system}" "$2" 2>/dev/null && return 0
return 1
fi
@@ -791,12 +792,7 @@
echo "Checking if system is odexed and locating boot.oats..."
for ARCH in "arm64" "arm" "x86_64" "x86"; do
mkdir -p "$TMPDIR/system/framework/$ARCH"
- if [ -d "$SRC/framework" ] && [ "$SRC" != "adb" ]; then
- ARCHDIR="framework/$ARCH/"
- else
- ARCHDIR="system/framework/$ARCH/"
- fi
- if get_file "$ARCHDIR" "$TMPDIR/system/framework/" "$SRC"; then
+ if get_file "/system/framework/$ARCH" "$TMPDIR/system/framework/" "$SRC"; then
ARCHES+="$ARCH "
else
rmdir "$TMPDIR/system/framework/$ARCH"
@@ -1044,7 +1040,7 @@
# Also try to search for files stripped of
# the "/system" prefix, if we're actually extracting
# from a system image.
- for CANDIDATE in "${DST_FILE}" "${DST_FILE#/system}" "${SRC_FILE}" "${SRC_FILE#/system}"; do
+ for CANDIDATE in "${DST_FILE}" "${SRC_FILE}"; do
get_file ${CANDIDATE} ${VENDOR_REPO_FILE} ${SRC} && {
FOUND=true
break
@@ -1059,11 +1055,11 @@
if [ "$?" == "0" ]; then
# Deodex apk|jar if that's the case
if [[ "$FULLY_DEODEXED" -ne "1" && "${VENDOR_REPO_FILE}" =~ .(apk|jar)$ ]]; then
- oat2dex "${VENDOR_REPO_FILE}" "${SPEC_SRC_FILE}" "$SRC"
+ oat2dex "${VENDOR_REPO_FILE}" "${SRC_FILE}" "$SRC"
if [ -f "$TMPDIR/classes.dex" ]; then
zip -gjq "${VENDOR_REPO_FILE}" "$TMPDIR/classes.dex"
rm "$TMPDIR/classes.dex"
- printf ' (updated %s from odex files)\n' "/${SPEC_SRC_FILE}"
+ printf ' (updated %s from odex files)\n' "${SRC_FILE}"
fi
elif [[ "${VENDOR_REPO_FILE}" =~ .xml$ ]]; then
fix_xml "${VENDOR_REPO_FILE}"