|
|
|
@ -11,7 +11,6 @@ MAGISKBASE=/data/adb
|
|
|
|
|
MODID=NanoDroid_Patcher
|
|
|
|
|
|
|
|
|
|
TMPDIR=/dev/tmp/install
|
|
|
|
|
APEX_LD=/system
|
|
|
|
|
|
|
|
|
|
PATCHER_ADDOND_DATA=/system/addon.d/nanodroid_patcher
|
|
|
|
|
|
|
|
|
@ -71,16 +70,21 @@ mount_apex_loop () {
|
|
|
|
|
|
|
|
|
|
# taken from Magisk, with modifications for NanoDroid
|
|
|
|
|
mount_apex () {
|
|
|
|
|
APEX_LD=/apex/com.android.runtime
|
|
|
|
|
|
|
|
|
|
mkdir -p /apex
|
|
|
|
|
|
|
|
|
|
APEX_LD=""
|
|
|
|
|
|
|
|
|
|
for apex in /system/apex/*; do
|
|
|
|
|
apex_mount="/apex/$(basename ${apex} .apex)"
|
|
|
|
|
apex_loop="/dev/loop_apex_$(basename ${apex} .apex)"
|
|
|
|
|
|
|
|
|
|
[ "${apex_mount}" == /apex/com.android.runtime.release ] && apex_mount=/apex/com.android.runtime
|
|
|
|
|
[ "${apex_mount}" == /apex/com.android.runtime.debug ] && apex_mount=/apex/com.android.runtime
|
|
|
|
|
[ "${apex_mount}" == /apex/com.android.art.release ] && apex_mount=/apex/com.android.art
|
|
|
|
|
[ "${apex_mount}" == /apex/com.android.art.debug ] && apex_mount=/apex/com.android.art
|
|
|
|
|
|
|
|
|
|
APEX_LD="${apex_mount}/lib:${APEX_LD}"
|
|
|
|
|
APEX_LD_64="${apex_mount}/lib64:${APEX_LD_64}"
|
|
|
|
|
|
|
|
|
|
mkdir -p "${apex_mount}"
|
|
|
|
|
|
|
|
|
@ -92,17 +96,12 @@ mount_apex () {
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
export ANDROID_RUNTIME_ROOT=/apex/com.android.runtime
|
|
|
|
|
export ANDROID_TZDATA_ROOT=/apex/com.android.tzdata
|
|
|
|
|
|
|
|
|
|
echo " INFO: #10 [APEX_LD] ${APEX_LD}"
|
|
|
|
|
echo " INFO: #11 [APEX [ALL]] $(ls /system/apex/*)"
|
|
|
|
|
echo " INFO: #10 [APEX [ALL]] $(ls /system/apex/*)"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# taken from Magisk, with minor modifications for NanoDroid
|
|
|
|
|
mount_partitions () {
|
|
|
|
|
if ${BOOTMODE}; then
|
|
|
|
|
APEX_LD=/apex/com.android.runtime
|
|
|
|
|
build_props=$(find /system /system_root /vendor -type f -name build.prop)
|
|
|
|
|
else
|
|
|
|
|
DEVICE_AB=FALSE
|
|
|
|
@ -173,6 +172,12 @@ mount_partitions () {
|
|
|
|
|
|
|
|
|
|
[ -d /system/apex ] && mount_apex
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
[ -d /apex/com.android.art ] && export ANDROID_ART_ROOT=/apex/com.android.art
|
|
|
|
|
export ANDROID_RUNTIME_ROOT=/apex/com.android.runtime
|
|
|
|
|
|
|
|
|
|
export ANDROID_TZDATA_ROOT=/apex/com.android.tzdata
|
|
|
|
|
export ANDROID_I18N_ROOT /apex/com.android.i18n
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
umount_partitions () {
|
|
|
|
@ -181,15 +186,13 @@ umount_partitions () {
|
|
|
|
|
umount -l /vendor 2>/dev/null
|
|
|
|
|
umount -l /dev/random 2>/dev/null
|
|
|
|
|
|
|
|
|
|
mount | awk '/ \/apex/{print $3}' | while read apex_mount; do
|
|
|
|
|
mount | awk '/ \/apex/{print $1 " " $3}' | while read apex_loop apex_mount; do
|
|
|
|
|
umount -l "${apex_mount}" 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
mount | awk '/ \/apex/{print $1}' | while read apex_loop; do
|
|
|
|
|
losetup -d "${apex_loop}" 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
unset ANDROID_RUNTIME_ROOT
|
|
|
|
|
unset ANDROID_ART_ROOT
|
|
|
|
|
unset ANDROID_TZDATA_ROOT
|
|
|
|
|
unset BOOTCLASSPATH
|
|
|
|
|
|
|
|
|
@ -201,6 +204,8 @@ error () {
|
|
|
|
|
ui_print " !! ${@}"
|
|
|
|
|
ui_print " "
|
|
|
|
|
|
|
|
|
|
${BOOTMODE} || umount_partitions
|
|
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -341,37 +346,26 @@ detect_arch () {
|
|
|
|
|
|
|
|
|
|
export PATH="${BASEDIR}/busybox:/system/bin:/system/xbin"
|
|
|
|
|
|
|
|
|
|
DALVIKVM_BIN=$(ls -l ${APEX_LD}/bin/dalvikvm | awk '{print $NF}')
|
|
|
|
|
DALVIKVM_ARCH=$("${FILE}" -m "${BASEDIR}/magic.mgc" -L ${APEX_LD}/bin/dalvikvm)
|
|
|
|
|
DALVIKVM_ARCH=$("${FILE}" -m "${BASEDIR}/magic.mgc" -L /system/bin/dalvikvm)
|
|
|
|
|
|
|
|
|
|
case ${DALVIKVM_BIN} in
|
|
|
|
|
*dalvikvm32* )
|
|
|
|
|
export LD_LIBRARY_PATH="${APEX_LD}/lib:/system/lib:/vendor/lib:/system/vendor/lib:/product/lib:/system/product/lib"
|
|
|
|
|
case ${DALVIKVM_ARCH} in
|
|
|
|
|
*32-bit* )
|
|
|
|
|
export LD_LIBRARY_PATH="/system/lib:/vendor/lib:/system/vendor/lib:/product/lib:/system/product/lib:${APEX_LD}"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
*dalvikvm64* )
|
|
|
|
|
export LD_LIBRARY_PATH="${APEX_LD}/lib64:/system/lib64:/vendor/lib64:/system/vendor/lib64:/product/lib64:/system/product/lib64"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
*dalvikvm* )
|
|
|
|
|
case ${DALVIKVM_ARCH} in
|
|
|
|
|
*32-bit* )
|
|
|
|
|
export LD_LIBRARY_PATH="${APEX_LD}/lib:/system/lib:/vendor/lib:/system/vendor/lib:/product/lib:/system/product/lib"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
*64-bit* )
|
|
|
|
|
export LD_LIBRARY_PATH="${APEX_LD}/lib64:/system/lib64:/vendor/lib64:/system/vendor/lib64:/product/lib64:/system/product/lib64"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
*64-bit* )
|
|
|
|
|
export LD_LIBRARY_PATH="/system/lib64:/vendor/lib64:/system/vendor/lib64:/product/lib64:/system/product/lib64:${APEX_LD_64}"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
if [ -f ${APEX_LD}/etc/ld.config.txt ]; then
|
|
|
|
|
export LD_CONFIG_FILE="${APEX_LD}/etc/ld.config.txt"
|
|
|
|
|
elif [ -f ${APEX_LD}/etc/ld.config.${SDK_VERSION}.txt ]; then
|
|
|
|
|
export LD_CONFIG_FILE="${APEX_LD}/etc/ld.config.${SDK_VERSION}.txt"
|
|
|
|
|
if [ -f ${ANDROID_RUNTIME_ROOT}/etc/ld.config.txt ]; then
|
|
|
|
|
export LD_CONFIG_FILE="${ANDROID_RUNTIME_ROOT}/etc/ld.config.txt"
|
|
|
|
|
elif [ -f ${ANDROID_RUNTIME_ROOT}/etc/ld.config.${SDK_VERSION}.txt ]; then
|
|
|
|
|
export LD_CONFIG_FILE="${ANDROID_RUNTIME_ROOT}/etc/ld.config.${SDK_VERSION}.txt"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
unset LD_PRELOAD
|
|
|
|
|
|
|
|
|
|
echo " *** LD_CONFIG_FILE=${LD_CONFIG_FILE}"
|
|
|
|
|
ui_print " > device architecture: ${ARCH}"
|
|
|
|
|
}
|
|
|
|
@ -499,7 +493,7 @@ call_dalvikvm () {
|
|
|
|
|
export BOOTCLASSPATH=${ND_BOOTCLASSPATH}
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
supported_opts=$(${APEX_LD}/bin/dalvikvm --help 2>&1)
|
|
|
|
|
supported_opts=$(/system/bin/dalvikvm --help 2>&1)
|
|
|
|
|
|
|
|
|
|
[[ "${supported_opts}" == *\[no\]image-dex2oat* ]] && DALVIKVM_OPTS="${DALVIKVM_OPTS} -Xnoimage-dex2oat"
|
|
|
|
|
[[ "${supported_opts}" == *verbose:*gc* ]] && DALVIKVM_OPTS="${DALVIKVM_OPTS} -verbose:gc"
|
|
|
|
@ -511,7 +505,7 @@ call_dalvikvm () {
|
|
|
|
|
echo " *** DALVIKVM_OPTS=${DALVIKVM_OPTS}"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
${APEX_LD}/bin/dalvikvm -Xnoimage-dex2oat ${DALVIKVM_OPTS} "${@}"
|
|
|
|
|
/system/bin/dalvikvm -Xnoimage-dex2oat ${DALVIKVM_OPTS} "${@}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
deodex_vdex () {
|
|
|
|
|