summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extract_utils.sh74
1 files changed, 37 insertions, 37 deletions
diff --git a/extract_utils.sh b/extract_utils.sh
index aed974d..80c31f8 100644
--- a/extract_utils.sh
+++ b/extract_utils.sh
@@ -20,7 +20,7 @@ ARCHES=
FULLY_DEODEXED=-1
SKIP_CLEANUP=${SKIP_CLEANUP:-0}
-TMPDIR=${TMPDIR:-$(mktemp -d)}
+EXTRACT_TMP_DIR=$(mktemp -d)
HOST="$(uname | tr '[:upper:]' '[:lower:]')"
#
@@ -30,9 +30,9 @@ HOST="$(uname | tr '[:upper:]' '[:lower:]')"
#
function cleanup() {
if [ "$SKIP_CLEANUP" == "true" ] || [ "$SKIP_CLEANUP" == "1" ]; then
- echo "Skipping cleanup of $TMPDIR"
+ echo "Skipping cleanup of $EXTRACT_TMP_DIR"
else
- rm -rf "${TMPDIR:?}"
+ rm -rf "${EXTRACT_TMP_DIR:?}"
fi
}
@@ -1003,7 +1003,7 @@ function parse_file_list() {
if [ -n "$2" ]; then
echo "Using section \"$2\""
- LIST=$TMPDIR/files.txt
+ LIST=$EXTRACT_TMP_DIR/files.txt
# Match all lines starting with first line found to start* with '#'
# comment and contain** $2, and ending with first line to be empty*.
# *whitespaces (tabs, spaces) at the beginning of lines are discarded
@@ -1160,11 +1160,11 @@ function oat2dex() {
if [ -z "$ARCHES" ]; then
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 get_file "/system/framework/$ARCH" "$TMPDIR/system/framework/" "$SRC"; then
+ mkdir -p "$EXTRACT_TMP_DIR/system/framework/$ARCH"
+ if get_file "/system/framework/$ARCH" "$EXTRACT_TMP_DIR/system/framework/" "$SRC"; then
ARCHES+="$ARCH "
else
- rmdir "$TMPDIR/system/framework/$ARCH"
+ rmdir "$EXTRACT_TMP_DIR/system/framework/$ARCH"
fi
done
fi
@@ -1182,53 +1182,53 @@ function oat2dex() {
fi
for ARCH in $ARCHES; do
- BOOTOAT="$TMPDIR/system/framework/$ARCH/boot.oat"
+ BOOTOAT="$EXTRACT_TMP_DIR/system/framework/$ARCH/boot.oat"
local OAT="$(dirname "$OEM_TARGET")/oat/$ARCH/$(basename "$OEM_TARGET" ."${OEM_TARGET##*.}").odex"
local VDEX="$(dirname "$OEM_TARGET")/oat/$ARCH/$(basename "$OEM_TARGET" ."${OEM_TARGET##*.}").vdex"
- if get_file "$OAT" "$TMPDIR" "$SRC"; then
- if get_file "$VDEX" "$TMPDIR" "$SRC"; then
- "$VDEXEXTRACTOR" -o "$TMPDIR/" -i "$TMPDIR/$(basename "$VDEX")" > /dev/null
- CLASSES=$(ls "$TMPDIR/$(basename "${OEM_TARGET%.*}")_classes"*)
+ if get_file "$OAT" "$EXTRACT_TMP_DIR" "$SRC"; then
+ if get_file "$VDEX" "$EXTRACT_TMP_DIR" "$SRC"; then
+ "$VDEXEXTRACTOR" -o "$EXTRACT_TMP_DIR/" -i "$EXTRACT_TMP_DIR/$(basename "$VDEX")" > /dev/null
+ CLASSES=$(ls "$EXTRACT_TMP_DIR/$(basename "${OEM_TARGET%.*}")_classes"*)
for CLASS in $CLASSES; do
NEWCLASS=$(echo "$CLASS" | sed 's/.*_//;s/cdex/dex/')
# Check if we have to deal with CompactDex
if [[ "$CLASS" == *.cdex ]]; then
"$CDEXCONVERTER" "$CLASS" &>/dev/null
- mv "$CLASS.new" "$TMPDIR/$NEWCLASS"
+ mv "$CLASS.new" "$EXTRACT_TMP_DIR/$NEWCLASS"
else
- mv "$CLASS" "$TMPDIR/$NEWCLASS"
+ mv "$CLASS" "$EXTRACT_TMP_DIR/$NEWCLASS"
fi
done
else
- java -jar "$BAKSMALIJAR" deodex -o "$TMPDIR/dexout" -b "$BOOTOAT" -d "$TMPDIR" "$TMPDIR/$(basename "$OAT")"
- java -jar "$SMALIJAR" assemble "$TMPDIR/dexout" -o "$TMPDIR/classes.dex"
+ java -jar "$BAKSMALIJAR" deodex -o "$EXTRACT_TMP_DIR/dexout" -b "$BOOTOAT" -d "$EXTRACT_TMP_DIR" "$EXTRACT_TMP_DIR/$(basename "$OAT")"
+ java -jar "$SMALIJAR" assemble "$EXTRACT_TMP_DIR/dexout" -o "$EXTRACT_TMP_DIR/classes.dex"
fi
elif [[ "$CUSTOM_TARGET" =~ .jar$ ]]; then
- JAROAT="$TMPDIR/system/framework/$ARCH/boot-$(basename ${OEM_TARGET%.*}).oat"
+ JAROAT="$EXTRACT_TMP_DIR/system/framework/$ARCH/boot-$(basename ${OEM_TARGET%.*}).oat"
JARVDEX="/system/framework/boot-$(basename ${OEM_TARGET%.*}).vdex"
if [ ! -f "$JAROAT" ]; then
JAROAT=$BOOTOAT
fi
# try to extract classes.dex from boot.vdex for frameworks jars
# fallback to boot.oat if vdex is not available
- if get_file "$JARVDEX" "$TMPDIR" "$SRC"; then
- "$VDEXEXTRACTOR" -o "$TMPDIR/" -i "$TMPDIR/$(basename "$JARVDEX")" > /dev/null
- CLASSES=$(ls "$TMPDIR/$(basename "${JARVDEX%.*}")_classes"*)
+ if get_file "$JARVDEX" "$EXTRACT_TMP_DIR" "$SRC"; then
+ "$VDEXEXTRACTOR" -o "$EXTRACT_TMP_DIR/" -i "$EXTRACT_TMP_DIR/$(basename "$JARVDEX")" > /dev/null
+ CLASSES=$(ls "$EXTRACT_TMP_DIR/$(basename "${JARVDEX%.*}")_classes"*)
for CLASS in $CLASSES; do
NEWCLASS=$(echo "$CLASS" | sed 's/.*_//;s/cdex/dex/')
# Check if we have to deal with CompactDex
if [[ "$CLASS" == *.cdex ]]; then
"$CDEXCONVERTER" "$CLASS" &>/dev/null
- mv "$CLASS.new" "$TMPDIR/$NEWCLASS"
+ mv "$CLASS.new" "$EXTRACT_TMP_DIR/$NEWCLASS"
else
- mv "$CLASS" "$TMPDIR/$NEWCLASS"
+ mv "$CLASS" "$EXTRACT_TMP_DIR/$NEWCLASS"
fi
done
else
- java -jar "$BAKSMALIJAR" deodex -o "$TMPDIR/dexout" -b "$BOOTOAT" -d "$TMPDIR" "$JAROAT/$OEM_TARGET"
- java -jar "$SMALIJAR" assemble "$TMPDIR/dexout" -o "$TMPDIR/classes.dex"
+ java -jar "$BAKSMALIJAR" deodex -o "$EXTRACT_TMP_DIR/dexout" -b "$BOOTOAT" -d "$EXTRACT_TMP_DIR" "$JAROAT/$OEM_TARGET"
+ java -jar "$SMALIJAR" assemble "$EXTRACT_TMP_DIR/dexout" -o "$EXTRACT_TMP_DIR/classes.dex"
fi
else
continue
@@ -1236,7 +1236,7 @@ function oat2dex() {
done
- rm -rf "$TMPDIR/dexout"
+ rm -rf "$EXTRACT_TMP_DIR/dexout"
}
#
@@ -1276,7 +1276,7 @@ function init_adb_connection() {
#
function fix_xml() {
local XML="$1"
- local TEMP_XML="$TMPDIR/`basename "$XML"`.temp"
+ local TEMP_XML="$EXTRACT_TMP_DIR/`basename "$XML"`.temp"
grep -a '^<?xml version' "$XML" > "$TEMP_XML"
grep -av '^<?xml version' "$XML" >> "$TEMP_XML"
@@ -1401,14 +1401,14 @@ function extract() {
local PRODUCT_COPY_FILES_COUNT=${#PRODUCT_COPY_FILES_LIST[@]}
local COUNT=${#FILELIST[@]}
local OUTPUT_ROOT="$ANDROID_ROOT"/"$OUTDIR"/proprietary
- local OUTPUT_TMP="$TMPDIR"/"$OUTDIR"/proprietary
+ local OUTPUT_TMP="$EXTRACT_TMP_DIR"/"$OUTDIR"/proprietary
if [ "$SRC" = "adb" ]; then
init_adb_connection
fi
if [ -f "$SRC" ] && [ "${SRC##*.}" == "zip" ]; then
- DUMPDIR="$TMPDIR"/system_dump
+ DUMPDIR="$EXTRACT_TMP_DIR"/system_dump
# Check if we're working with the same zip that was passed last time.
# If so, let's just use what's already extracted.
@@ -1452,7 +1452,7 @@ function extract() {
fi
if [ -d "$SRC" ] && [ -f "$SRC"/super.img ]; then
- DUMPDIR="$TMPDIR"/super_dump
+ DUMPDIR="$EXTRACT_TMP_DIR"/super_dump
mkdir -p "$DUMPDIR"
echo "Unpacking super.img"
@@ -1472,7 +1472,7 @@ function extract() {
fi
if [ -d "$SRC" ] && [ -f "$SRC"/system.img ]; then
- DUMPDIR="$TMPDIR"/system_dump
+ DUMPDIR="$EXTRACT_TMP_DIR"/system_dump
mkdir -p "$DUMPDIR"
for PARTITION in "system" "odm" "product" "system_ext" "vendor"
@@ -1588,10 +1588,10 @@ function extract() {
# Deodex apk|jar if that's the case
if [[ "$FULLY_DEODEXED" -ne "1" && "${VENDOR_REPO_FILE}" =~ .(apk|jar)$ ]]; then
oat2dex "${VENDOR_REPO_FILE}" "${SRC_FILE}" "$SRC"
- if [ -f "$TMPDIR/classes.dex" ]; then
- touch -t 200901010000 "$TMPDIR/classes"*
- zip -gjq "${VENDOR_REPO_FILE}" "$TMPDIR/classes"*
- rm "$TMPDIR/classes"*
+ if [ -f "$EXTRACT_TMP_DIR/classes.dex" ]; then
+ touch -t 200901010000 "$EXTRACT_TMP_DIR/classes"*
+ zip -gjq "${VENDOR_REPO_FILE}" "$EXTRACT_TMP_DIR/classes"*
+ rm "$EXTRACT_TMP_DIR/classes"*
printf ' (updated %s from odex files)\n' "${SRC_FILE}"
fi
elif [[ "${VENDOR_REPO_FILE}" =~ .xml$ ]]; then
@@ -1679,7 +1679,7 @@ function extract_firmware() {
function extract_img_data() {
local image_file="$1"
local out_dir="$2"
- local logFile="$TMPDIR/debugfs.log"
+ local logFile="$EXTRACT_TMP_DIR/debugfs.log"
if [ ! -d "$out_dir" ]; then
mkdir -p "$out_dir"
@@ -1716,9 +1716,9 @@ function array_contains() {
function generate_prop_list_from_image() {
local image_file="$1"
- local image_dir="$TMPDIR/image-temp"
+ local image_dir="$EXTRACT_TMP_DIR/image-temp"
local output_list="$2"
- local output_list_tmp="$TMPDIR/_proprietary-blobs.txt"
+ local output_list_tmp="$EXTRACT_TMP_DIR/_proprietary-blobs.txt"
local -n skipped_files="$3"
local partition="$4"