Added baksmali/smali 2.1.3 to support android 6 (API 23) and older versions (?)

merge-requests/23/head
Gia90 6 years ago
parent be2e20a5ef
commit e1d1e9e3b8

@ -234,13 +234,16 @@ detect_sdk () {
[ "${SDK_VERSION}" -lt 16 ] && \
error "Android versions before Jelly Bean are not supported"
if [ "${SDK_VERSION}" -gt 25 ]; then
BAKSMALI="${BASEDIR}/baksmali_26.dex"
SMALI="${BASEDIR}/smali_26.dex"
else
BAKSMALI="${BASEDIR}/baksmali_25.dex"
SMALI="${BASEDIR}/smali_25.dex"
fi
if [ "${SDK_VERSION}" -gt 25 ]; then
BAKSMALI="${BASEDIR}/baksmali_26.dex"
SMALI="${BASEDIR}/smali_26.dex"
elif [ "${SDK_VERSION}" -gt 23 ]; then
BAKSMALI="${BASEDIR}/baksmali_25.dex"
SMALI="${BASEDIR}/smali_25.dex"
else
BAKSMALI="${BASEDIR}/baksmali_23.dex"
SMALI="${BASEDIR}/smali_23.dex"
fi
PATCH_CORE="${BASEDIR}/core_services.jar.dex"
PATCH_UNLP="${BASEDIR}/unifiednlp_services.jar.dex"
@ -355,6 +358,74 @@ call_dalvikvm () {
fi
}
deodex_vdex () {
ui_print " >> deodexing services.jar [VDEX]"
cp /system/framework/oat/${ARCH}/services.vdex \
${BASEDIR}/services.vdex || \
error "failed to copy services.vdex"
${V_EX} -i ${BASEDIR}/services.vdex \
--ignore-crc-error --debug=4 || \
error "failed to deodex services.vdex"
mv ${BASEDIR}/services.apk_classes.dex ${BASEDIR}/classes.dex || \
error "failed to deodex services.vdex"
${ZIPB} -j "${BASEDIR}/services.jar" \
"${BASEDIR}/classes.dex" || \
error "zip failed"
}
deodex_odex () {
ui_print " >> deodexing services.jar [ODEX]"
cp "/system/framework/oat/${ARCH}/services.odex" "${BASEDIR}"
# baksmali/smali options switches (version dependent)
MAIN=Main
DEODEX="x"
ASSEMBLE="a"
BOOTCLASSPATH="-b"
CLASSPATHDIR="-d"
if [ "${SDK_VERSION}" -lt 24 ]; then
MAIN=main
DEODEX="-x"
ASSEMBLE=
BOOTCLASSPATH="-c"
fi
ui_print " [1] baksmali services.odex"
call_dalvikvm \
-classpath "${BAKSMALI}" \
org.jf.baksmali.${MAIN} \
${DEODEX} \
${BOOTCLASSPATH} "/system/framework/${ARCH}/boot.oat" \
${CLASSPATHDIR} "/system/framework/${ARCH}" \
${CLASSPATHDIR} "/system/framework" \
-o "${BASEDIR}/services.jar-deodex" \
"${BASEDIR}/services.odex" || \
error "failed to deodex services.jar"
ui_print " [2] smali services.odex"
call_dalvikvm \
-classpath "${SMALI}" \
org.jf.smali.${MAIN} \
${ASSEMBLE} \
-o "${BASEDIR}/services.jar-deodex/classes.dex" \
"${BASEDIR}/services.jar-deodex" || \
error "failed to rebuild classes.dex"
${ZIPB} -j "${BASEDIR}/services.jar" \
"${BASEDIR}/services.jar-deodex"/classes*.dex || \
error "zip failed"
rm -rf "${BASEDIR}/services.jar-deodex"
}
patch_services () {
ui_print " "
ui_print " > patching signature spoofing support"
@ -364,58 +435,11 @@ patch_services () {
${BASEDIR}/services.jar || \
error "failed to copy services.jar"
#
# XXX vdex stuff
#
if [ "${ROM_DEX_STATUS}" = "VDEX" ]; then
ui_print " >> deodexing services.jar [VDEX]"
cp /system/framework/oat/${ARCH}/services.vdex \
${BASEDIR}/services.vdex || \
error "failed to copy services.vdex"
${V_EX} -i ${BASEDIR}/services.vdex \
--ignore-crc-error --debug=4 || \
error "failed to deodex services.vdex"
mv ${BASEDIR}/services.apk_classes.dex ${BASEDIR}/classes.dex || \
error "failed to deodex services.vdex"
${ZIPB} -j "${BASEDIR}/services.jar" \
"${BASEDIR}/classes.dex" || \
error "zip failed"
#
# XXX odex stuff
#
deodex_vdex
elif [ "${ROM_DEX_STATUS}" = "ODEX" ]; then
ui_print " >> deodexing services.jar [ODEX]"
cp "/system/framework/oat/${ARCH}/services.odex" "${BASEDIR}"
ui_print " [1] baksmali services.odex"
call_dalvikvm \
-classpath "${BAKSMALI}" \
org.jf.baksmali.Main \
x "${BASEDIR}/services.odex" \
-b "/system/framework/${ARCH}/boot.oat" \
-d "/system/framework/${ARCH}" \
-d "/system/framework" \
-o "${BASEDIR}/services.jar-deodex" || \
error "failed to deodex services.jar"
ui_print " [2] smali services.odex"
call_dalvikvm \
-classpath "${SMALI}" \
org.jf.smali.Main \
a "${BASEDIR}/services.jar-deodex" \
-o "${BASEDIR}/services.jar-deodex/classes.dex" || \
error "failed to rebuild classes.dex"
${ZIPB} -j "${BASEDIR}/services.jar" \
"${BASEDIR}/services.jar-deodex"/classes*.dex || \
error "zip failed"
rm -rf "${BASEDIR}/services.jar-deodex"
deodex_odex
fi
mkdir -p "${BASEDIR}/services.jar-mod"
@ -423,6 +447,7 @@ patch_services () {
PATCHES="${PATCH_HOOK} ${PATCH_CORE} ${PATCH_UNLP}"
ui_print " >> patching services.jar"
call_dalvikvm \
-classpath "${BASEDIR}/dexpatcher.dex" \
lanchon.dexpatcher.Main \

Loading…
Cancel
Save