Update to smali/baksmali v2.2b3
The cli changed slightly:
https://github.com/JesusFreke/smali/wiki/SmaliBaksmali2.2
And, for deodexing angler at least, baksmali needs access to boot*.oat
rather than just boot.oat so point at source rather than copy
Resurrected from http://review.cyanogenmod.org/#/c/164958/
With fixed adb $SRC deodexing
Change-Id: Id6ae0e9d7a5554687124e99fb03a808f3115bb95
diff --git a/build/tools/extract_utils.sh b/build/tools/extract_utils.sh
index 13098a0..95a1c9f 100644
--- a/build/tools/extract_utils.sh
+++ b/build/tools/extract_utils.sh
@@ -625,7 +625,7 @@
return 1
else
# try to copy
- cp "$SRC/$1" "$2" 2>/dev/null && return 0
+ cp -r "$SRC/$1" "$2" 2>/dev/null && return 0
return 1
fi
@@ -654,10 +654,13 @@
# Extract existing boot.oats to the temp folder
if [ -z "$ARCHES" ]; then
- echo "Checking if system is odexed and extracting boot.oats, if applicable. This may take a while..."
+ echo "Checking if system is odexed and locating boot.oats..."
for ARCH in "arm64" "arm" "x86_64" "x86"; do
- if get_file "system/framework/$ARCH/boot.oat" "$TMPDIR/boot_$ARCH.oat" "$SRC"; then
+ mkdir -p "$TMPDIR/system/framework/$ARCH"
+ if get_file "system/framework/$ARCH/" "$TMPDIR/system/framework/" "$SRC"; then
ARCHES+="$ARCH "
+ else
+ rmdir "$TMPDIR/system/framework/$ARCH"
fi
done
fi
@@ -675,20 +678,20 @@
fi
for ARCH in $ARCHES; do
- BOOTOAT="$TMPDIR/boot_$ARCH.oat"
+ BOOTOAT="$TMPDIR/system/framework/$ARCH/boot.oat"
local OAT="$(dirname "$OEM_TARGET")/oat/$ARCH/$(basename "$OEM_TARGET" ."${OEM_TARGET##*.}").odex"
if get_file "$OAT" "$TMPDIR" "$SRC"; then
- java -jar "$BAKSMALIJAR" -x -o "$TMPDIR/dexout" -c "$BOOTOAT" -d "$TMPDIR" "$TMPDIR/$(basename "$OAT")"
+ java -jar "$BAKSMALIJAR" deodex -o "$TMPDIR/dexout" -b "$BOOTOAT" -d "$TMPDIR" "$TMPDIR/$(basename "$OAT")"
elif [[ "$CM_TARGET" =~ .jar$ ]]; then
# try to extract classes.dex from boot.oat for framework jars
- java -jar "$BAKSMALIJAR" -x -o "$TMPDIR/dexout" -c "$BOOTOAT" -d "$TMPDIR" -e "/$OEM_TARGET" "$BOOTOAT"
+ java -jar "$BAKSMALIJAR" deodex -o "$TMPDIR/dexout" -b "$BOOTOAT" -d "$TMPDIR" -e "/$OEM_TARGET" "$BOOTOAT"
else
continue
fi
- java -jar "$SMALIJAR" "$TMPDIR/dexout" -o "$TMPDIR/classes.dex" && break
+ java -jar "$SMALIJAR" assemble "$TMPDIR/dexout" -o "$TMPDIR/classes.dex" && break
done
rm -rf "$TMPDIR/dexout"
diff --git a/build/tools/smali/baksmali.jar b/build/tools/smali/baksmali.jar
index fe354fb..a1690c3 100644
--- a/build/tools/smali/baksmali.jar
+++ b/build/tools/smali/baksmali.jar
Binary files differ
diff --git a/build/tools/smali/smali.jar b/build/tools/smali/smali.jar
index 5459a87..2150965 100644
--- a/build/tools/smali/smali.jar
+++ b/build/tools/smali/smali.jar
Binary files differ