2
0
mirror of https://gitlab.com/Nanolx/NanoDroid synced 2024-11-17 21:26:22 +00:00
NanoDroid/CommonAddon

261 lines
5.2 KiB
Plaintext
Raw Normal View History

#!/sbin/sh
2018-09-02 13:03:32 +00:00
#
# ADDOND_VERSION=2
#
##########################################################################################
#
# NanoDroid System Mode OTA survival Script
# by Nanolx
#
# Inspired by 99-flashafterupdate.sh of osm0sis @ xda-developers
# Forked from 99-magisk.sh of topjohnwu @ xda-developers
#
##########################################################################################
2018-09-08 19:42:40 +00:00
source /tmp/backuptool.functions
MODID=@MODID@
OUTFD=
2019-08-11 20:04:44 +00:00
VERSION=22.4.20190811
2019-02-04 19:19:40 +00:00
print_google_apps()
{
cat <<EOF
AMAPNetworkLocation
2018-08-24 22:28:06 +00:00
BaiduNetworkLocation
BlankStore
2018-12-20 20:30:24 +00:00
ConfigUpdater
GCS
2018-08-24 22:28:06 +00:00
GmsCoreSetupPrebuilt
GmsCore_update
GoogleFeedback
GoogleLoginService
GoogleOneTimeInitializer
GoogleServicesFramework
2018-12-20 20:30:24 +00:00
GoogleConnectivityServices
GoogleTTS
2018-08-24 22:28:06 +00:00
LegacyNetworkLocation
MarketUpdater
MarkupGoogle
NetworkLocation
PlayGames
PlayStore
PrebuiltGmsCore
2018-12-20 20:30:24 +00:00
PrebuiltGmsCorePi
PrebuiltGmsCorePix
2018-08-24 22:28:06 +00:00
UnifiedNlp
Velvet
Vending
2019-02-04 19:19:40 +00:00
WhisperPush
EOF
}
2019-02-04 19:19:40 +00:00
print_google_data ()
{
cat <<EOF
com.amap.android.location
2018-08-24 22:28:06 +00:00
com.baidu.location
com.google.android.location
org.microg.nlp
2019-02-04 19:19:40 +00:00
org.microg.unifiednlp
EOF
}
# check for configuration files
config_locations="/data/media/0 /external_sd /sdcard1 /data"
get_config () {
config=""
config_exists=0
for path in ${config_locations}; do
if test -r "${path}/.nanodroid-${1}"; then
config="${path}/.nanodroid-${1}"
config_exists=1
return
fi
done
}
is_mounted() {
if [ ! -z "$2" ]; then
cat /proc/mounts | grep $1 | grep $2, >/dev/null
else
cat /proc/mounts | grep $1 >/dev/null
fi
return $?
}
if (is_mounted /data); then
mount -orw,remount /data >/dev/null
else mount -orw /data >/dev/null
fi
2018-08-21 19:34:56 +00:00
if [ ! -d /system/xbin ]; then
NANODROID_BINDIR=/system/bin
else NANODROID_BINDIR=/system/xbin
fi
if [ -r /data/adb/.nanodroid-list ]; then
NANODROID_LIST=/data/adb/.nanodroid-list
elif [ -r /data/adb/NanoDroid_FileList ]; then
NANODROID_LIST=/data/adb/NanoDroid_FileList
else
echo "No installer information found!"
exit 1
fi
ui_print () {
2018-04-10 19:13:11 +00:00
echo -n -e "ui_print ${1}\n" >> /proc/self/fd/${OUTFD}
echo -n -e "ui_print\n" >> /proc/self/fd/${OUTFD}
}
grep_prop() {
REGEX="${1}"
shift
FILES="${@}"
[ -z "${@}" ] && FILES='/system/build.prop'
sed -n "s/^${REGEX}=//p" ${FILES} | \
head -n 1
}
set_ldlibrarypath () {
SDK_VERSION=$(grep_prop ro.build.version.sdk)
ABI=$(grep_prop ro.product.cpu.abi | cut -c-3)
ABI2=$(grep_prop ro.product.cpu.abi2 | cut -c-3)
ABILONG=$(grep_prop ro.product.cpu.abi)
OLD_LD=${LD_LIBRARY_PATH}
OLD_PATH=${PATH}
ARCH=arm
[ "$ABI" = "x86" ] && ARCH=x86
[ "$ABI2" = "x86" ] && ARCH=x86
[ "$ABILONG" = "arm64-v8a" ] && ARCH=arm64
2018-10-18 17:58:13 +00:00
[ "$ABILONG" = "x86_64" ] && ARCH=x86_64
case ${ARCH} in
arm | x86 )
export LD_LIBRARY_PATH=/system/lib:/system/vendor/lib:/vendor/lib
;;
arm64 | x86_64 )
export LD_LIBRARY_PATH=/system/lib64:/system/vendor/lib64:/vendor/lib64
;;
esac
export PATH=/system/bin:/system/xbin:${PATH}
}
detect_outfd () {
if [ -z $OUTFD ] || readlink /proc/$$/fd/$OUTFD | grep -q /tmp; then
# We will have to manually find out OUTFD
for FD in `ls /proc/$$/fd`; do
if readlink /proc/$$/fd/$FD | grep -q pipe; then
if ps | grep -v grep | grep -q " 3 $FD "; then
OUTFD=$FD
break
fi
fi
done
fi
}
2018-09-08 17:21:36 +00:00
detect_outfd
2018-09-08 19:42:40 +00:00
backup_action () {
sleep 5
2019-04-03 20:19:05 +00:00
mount /data
ui_print " ++ ${MODID} ${VERSION} addon.d: backup"
2018-09-08 19:42:40 +00:00
cat ${NANODROID_LIST} | while read FILE; do
echo " + backup: ${FILE}"
backup_file "${FILE}"
done
if test -h /system/fonts/Roboto-Regular.ttf; then
CUSTOM_FONT="$(basename $(readlink /system/fonts/Roboto-Regular.ttf) .ttf)"
ui_print " ++ ${MODID} addon.d: detected NanoDroid-Font (${CUSTOM_FONT})"
2018-09-08 19:42:40 +00:00
echo CUSTOM_FONT=${CUSTOM_FONT} > /tmp/nanodroid_font
fi
ui_print " ++ ${MODID} ${VERSION} addon.d: backup done"
2018-09-08 19:42:40 +00:00
}
2018-09-08 19:42:40 +00:00
restore_action () {
sleep 5
ui_print " ++ ${MODID} ${VERSION} addon.d: restore"
2018-09-08 19:42:40 +00:00
cat ${NANODROID_LIST} | while read FILE; do
echo " + restore: ${FILE}"
restore_file "${FILE}"
done
ui_print " ++ ${MODID} ${VERSION} addon.d: restore done"
2018-09-08 19:42:40 +00:00
}
2018-09-08 19:42:40 +00:00
postrestore_action () {
sleep 5
set_ldlibrarypath
2018-09-08 19:42:40 +00:00
if [ -f /tmp/nanodroid_font ]; then
source /tmp/nanodroid_font
ui_print " ++ ${MODID} ${VERSION} addon.d: restoring NanoDroid-Font (${CUSTOM_FONT})"
2018-09-08 19:42:40 +00:00
${NANODROID_BINDIR}/nanodroid-font -s "${CUSTOM_FONT}"
rm /tmp/nanodroid_font
fi
ui_print " ++ ${MODID} ${VERSION} addon.d: GApps removal"
2019-02-04 19:19:40 +00:00
print_google_apps | while read app; do
${NANODROID_BINDIR}/nanodroid-overlay --add ${app}
done
2019-02-04 19:19:40 +00:00
print_google_data | while read app; do
rm -rf /data/data/${app}
rm -rf /data/user/*/${app}
rm -rf /data/user_de/*/${app}
rm -rf /data/app/${app}-*
done
ui_print " ++ ${MODID} ${VERSION} addon.d: GApps removal done"
get_config setup
if [ "${config_exists}" -eq 1 ]; then
source "${config}"
if [ "${nanodroid_overlay}" -eq 1 ]; then
ui_print " ++ ${MODID} ${VERSION} addon.d: creating Overlays"
${NANODROID_BINDIR}/nanodroid-overlay --create
ui_print " ++ ${MODID} ${VERSION} addon.d: creating Overlays done"
fi
fi
export PATH=${OLD_PATH}
export LD_LIBRARY_PATH=${OLD_LD}
2018-09-08 19:42:40 +00:00
}
case "${1}" in
backup)
backup_action
;;
restore)
restore_action
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
postrestore_action
;;
esac