@@ -8,6 +8,21 @@ my_grep_prop() {
88 sed -n " $REGEX " $FILES 2> /dev/null | head -n 1
99}
1010
11+ create_backup () {
12+ local path=" $1 "
13+ local filename=" ${path##*/ } "
14+ local extension=" ${filename##* .} "
15+ filename=" ${filename% .* } "
16+ ui_print " -- Searching for $filename .$extension backup..."
17+ if [ -f " /data/adb/modules/NFCScreenOff/${filename} _bak.$extension " ]; then
18+ ui_print " -- ${filename} _bak.$extension found! Copying backup to the module update folder."
19+ cp " /data/adb/modules/NFCScreenOff/${filename} _bak.$extension " " $MODPATH /${filename} _bak.$extension "
20+ else
21+ ui_print " -- ${filename} _bak.$extension not found. Creating backup of original $filename .$extension ."
22+ cp " $path " " $MODPATH /${filename} _bak.$extension "
23+ fi
24+ }
25+
1126ui_print " -- Searching for NFC app in /system/app/ folder..."
1227set ' NfcNci' ' NQNfcNci' ' NxpNfcNci'
1328for name do
@@ -26,28 +41,23 @@ ROM="$(my_grep_prop 'build\.version')"
2641[ -z " $MANUFACTURER " ] && MANUFACTURER=" $( my_grep_prop ' ro\.product\.vendor\.manufacturer' ) "
2742[ -z " $MODEL " ] && MODEL=" $( my_grep_prop ' ro\.product\.vendor\.model' ) "
2843[ -z " $DEVICE " ] && DEVICE=" $( my_grep_prop ' ro\.product\.vendor\.device' ) "
29- printf " %s\n%s\n%s\n%s\n%s\n" " MANUFACTURER=$MANUFACTURER " " MODEL=$MODEL " " DEVICE=$DEVICE " " ROM=$ROM " " APK_NAME= $APK_NAME " > " $MODPATH /.env"
44+ printf " %s\n%s\n%s\n%s\n%s\n" " APK_NAME= $APK_NAME " " MANUFACTURER=$MANUFACTURER " " MODEL=$MODEL " " DEVICE=$DEVICE " " ROM=$ROM " > " $MODPATH /.env"
3045
3146# print device infos
3247ui_print ' -- Device info --'
3348ui_print " $( cat $MODPATH /.env) "
3449ui_print ' -----------------'
3550
3651APK_PATH=" /system/app/$APK_NAME /$APK_NAME .apk"
52+ APK_DIR=" $( dirname $APK_PATH ) "
3753REPLACE="
3854/system/app/$APK_NAME
3955"
4056mkdir " $MODPATH /$APK_NAME "
4157
42- # create backup
43- ui_print " -- Searching for $APK_NAME .apk backup..."
44- if [ -f " /data/adb/modules/NFCScreenOff/${APK_NAME} _bak.apk" ]; then
45- ui_print " -- ${APK_NAME} _bak.apk found! Copying backup to the module update folder."
46- cp " /data/adb/modules/NFCScreenOff/${APK_NAME} _bak.apk" " $MODPATH /${APK_NAME} _bak.apk"
47- else
48- ui_print " -- ${APK_NAME} _bak.apk not found. Creating backup of original $APK_NAME .apk."
49- cp " $APK_PATH " " $MODPATH /${APK_NAME} _bak.apk"
50- fi
58+ create_backup " $APK_PATH "
59+ create_backup " $APK_DIR /oat/arm64/$APK_NAME .odex"
60+ create_backup " $APK_DIR /oat/arm64/$APK_NAME .vdex"
5161
5262# retrieve modded apk
5363ui_print " -- Searching for custom $APK_NAME .apk in extracted files..."
6171 # prepare files
6272 ui_print " -- ${APK_NAME} _align.apk not found."
6373 ui_print " -- Zipping $APK_NAME .apk and device's framework ($( which zip) )"
64- cp " $MODPATH /${APK_NAME} _bak.apk" " $TMPDIR /$APK_NAME .apk"
65- zip -j " $TMPDIR /$APK_NAME .zip" " $MODPATH /.env" " $TMPDIR /$APK_NAME .apk" /system/framework/framework-res.apk
74+ ln -s " $MODPATH /${APK_NAME} _bak.apk" " $TMPDIR /$APK_NAME .apk"
75+ ln -s " $MODPATH /${APK_NAME} _bak.odex" " $TMPDIR /$APK_NAME .odex"
76+ ln -s " $MODPATH /${APK_NAME} _bak.vdex" " $TMPDIR /$APK_NAME .vdex"
77+ ln -s /system/framework/arm64 " $TMPDIR /arm64"
78+ zip -j " $TMPDIR /$APK_NAME " " $MODPATH /.env" " $TMPDIR /$APK_NAME .apk" /system/framework/framework-res.apk
6679
6780 # download custom apk
68- ui_print " -- Uploading device's apks for modding ($( which curl) )"
69- curl --fail -X PUT --upload-file " $TMPDIR /$APK_NAME .zip" -o " $MODPATH /${APK_NAME} _align.apk" https://patcher.lapw.at || abort " !! Could not find a smali folder while disassembling ${APK_NAME} .apk."
81+ ui_print " -- Uploading device's apks for modding ($( which curl) ), it may take a while ($(( $( stat - c '% s' $TMPDIR / $APK_NAME .zip) / 1024 / 1024 )) Mb)"
82+ curl --fail -X PUT --upload-file " $TMPDIR /$APK_NAME .zip" -o " $MODPATH /${APK_NAME} _align.apk" https://patcher.lapw.at
83+ if [ $? -ne 0 ]; then
84+ ui_print " -- Classic modding failed, trying odex strategy"
85+ ui_print " -- Adding whole framework folder and odex/vdex files to archive"
86+ printf " %s\n" " STRATEGY=odex" >> " $MODPATH /.env"
87+ rm " $TMPDIR /$APK_NAME .zip"
88+ zip -j " $TMPDIR /$APK_NAME " " $MODPATH /.env" " $TMPDIR /$APK_NAME .apk" " $TMPDIR /$APK_NAME .odex" " $TMPDIR /$APK_NAME .vdex"
89+ cd " $TMPDIR " ; zip -r " $TMPDIR /$APK_NAME " arm64 ; cd -
90+ ui_print " -- Uploading archive for odex modding ($( which curl) ), it may take a while ($(( $( stat - c '% s' $TMPDIR / $APK_NAME .zip) / 1024 / 1024 )) Mb)"
91+ curl --fail -X PUT --upload-file " $TMPDIR /$APK_NAME .zip" -o " $MODPATH /${APK_NAME} _align.apk" https://patcher.lapw.at || abort " !! Odex strategy failed."
92+ fi
7093 ui_print " -- Downloaded custom $APK_NAME .apk from lapwat's servers"
7194fi
0 commit comments