2
0
mirror of https://gitlab.com/Nanolx/NanoDroid synced 2024-10-31 09:20:23 +00:00
NanoDroid/CommonAddon

138 lines
3.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
#
##########################################################################################
2020-10-04 17:00:50 +00:00
source /tmp/backuptool.functions || source /postinstall/tmp/backuptool.functions
2020-10-04 17:00:50 +00:00
MODID=NanoDroid
OUTFD=
2021-01-17 14:31:10 +00:00
VERSION=23.1.2.20210117
NANODROID_LIST=/system/addon.d/NanoDroid_FileList
2020-08-27 15:09:12 +00:00
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
}
ui_print () {
2021-01-17 17:38:31 +00:00
echo -e "ui_print ${1}" >> /proc/self/fd/${OUTFD}
echo -e "ui_print" >> /proc/self/fd/${OUTFD}
}
detect_outfd () {
# taken from Magisk
# update-binary|updater <RECOVERY_API_VERSION> <OUTFD> <ZIPFILE>
OUTFD=$(ps | grep -v 'grep' | grep -oE 'update(.*) 3 [0-9]+' | cut -d" " -f3)
[ -z $OUTFD ] && OUTFD=$(ps -Af | grep -v 'grep' | grep -oE 'update(.*) 3 [0-9]+' | cut -d" " -f3)
# update_engine_sideload --payload=file://<ZIPFILE> --offset=<OFFSET> --headers=<HEADERS> --status_fd=<OUTFD>
[ -z $OUTFD ] && OUTFD=$(ps | grep -v 'grep' | grep -oE 'status_fd=[0-9]+' | cut -d= -f2)
[ -z $OUTFD ] && OUTFD=$(ps -Af | grep -v 'grep' | grep -oE 'status_fd=[0-9]+' | cut -d= -f2)
}
2018-09-08 19:42:40 +00:00
backup_action () {
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
2020-11-02 19:23:28 +00:00
for file in .nanodroid-apps .nanodroid-overlay .nanodroid-setup; do
[ -f /system/addon.d/${file} ] && backup_file /system/addon.d/${file}
done
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 () {
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
2020-11-02 19:23:28 +00:00
for file in .nanodroid-apps .nanodroid-overlay .nanodroid-setup; do
restore_file /system/addon.d/${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 () {
ui_print " ++ ${MODID} ${VERSION} addon.d: GApps removal"
2019-02-04 19:19:40 +00:00
print_google_apps | while read app; do
2020-10-17 21:31:07 +00:00
/system/bin/nanodroid-overlay --add ${app}
done
ui_print " ++ ${MODID} ${VERSION} addon.d: GApps removal done"
2020-11-02 19:23:28 +00:00
if [ -f /system/addon.d/.nanodroid-overlay ]; then
ui_print " ++ ${MODID} ${VERSION} addon.d: creating Overlays"
/system/bin/nanodroid-overlay --create
ui_print " ++ ${MODID} ${VERSION} addon.d: creating Overlays done"
fi
2018-09-08 19:42:40 +00:00
}
2020-10-17 21:31:07 +00:00
detect_outfd
if [ ! -r ${NANODROID_LIST} ]; then
echo "No NanoDroid installer information found!"
2020-11-02 19:24:18 +00:00
exit 0
2020-10-17 21:31:07 +00:00
fi
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