-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathpatch-apk.bat
87 lines (73 loc) · 3.65 KB
/
patch-apk.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
@echo off
:: Sets the window's title
Title NetherSX2-Classic Patcher
:: Allows for Terminal Colors to be used
set col=lib\cmdcolor.exe
set md5hash=4a1751fa99bc4dcd647114c4d64e7985
:: Display Banner
echo \033[91m================================ | %col%
echo \033[91m NetherSX2-Classic Patcher v1.0 | %col%
echo \033[91m================================ | %col%
:: Makes sure Java is installed and in the PATH
java >nul 2>&1
if %errorlevel%==9009 goto nojava
:: Check if an NetherSX2 APK exists and if it's named correctly
if exist 13930-v1.5-3668-mod[patched].apk ren 13930-v1.5-3668-mod[patched].apk 13930-v1.5-3668-mod.apk >nul 2>&1
if exist 13930-v1.5-3668.apk goto patch
if not exist 13930-v1.5-3668-mod.apk ( goto getapk ) else ( goto update )
:patch
:: Check if the AetherSX2 APK is the right version
for /f %%f in ('""lib\md5sum.exe" "13930-v1.5-3668.apk""') do (
if %%f neq %md5hash% goto wrongmd5
)
:: Patching the AetherSX2 into a copy of NetherSX2
<nul set /p "=\033[96mPatching to \033[91mNetherSX2-Classic... " | %col%
lib\xdelta -d -f -s 13930-v1.5-3668.apk lib\patch.xdelta 13930-v1.5-3668-mod.apk
echo \033[92m[Done] | %col%
goto update
:update
:: Let's leave a backup copy of the NetherSX2 APK
copy 13930-v1.5-3668-mod.apk 13930-v1.5-3668-mod[patched].apk >nul 2>&1
:: Updates to Latest GameDB with features removed that are not supported by the libemucore.so from March 13th
<nul set /p "=\033[96mUpdating the \033[91mGameDB... " | %col%
lib\aapt r 13930-v1.5-3668-mod[patched].apk assets/GameIndex.yaml
lib\aapt a 13930-v1.5-3668-mod[patched].apk assets/GameIndex.yaml >nul 2>&1
echo \033[92m[Done] | %col%
:: Updates the Game Controller Database
<nul set /p "=\033[96mUpdating the \033[91mController Database... " | %col%
lib\aapt r 13930-v1.5-3668-mod[patched].apk assets/game_controller_db.txt
lib\aapt a 13930-v1.5-3668-mod[patched].apk assets/game_controller_db.txt >nul 2>&1
echo \033[92m[Done] | %col%
:: Updates the Widescreen Patches
<nul set /p "=\033[96mUpdating the \033[91mWidescreen Patches... " | %col%
lib\aapt r 13930-v1.5-3668-mod[patched].apk assets/cheats_ws.zip
lib\aapt a 13930-v1.5-3668-mod[patched].apk assets/cheats_ws.zip >nul 2>&1
echo \033[92m[Done] | %col%
:: Updates the No-Interlacing Patches
<nul set /p "=\033[96mUpdating the \033[91mNo-Interlacing Patches... " | %col%
lib\aapt r 13930-v1.5-3668-mod[patched].apk assets/cheats_ni.zip
lib\aapt a 13930-v1.5-3668-mod[patched].apk assets/cheats_ni.zip >nul 2>&1
echo \033[92m[Done] | %col%
:: Resigns the APK before exiting
<nul set /p "=\033[96mResigning the \033[91mNetherSX2 APK... " | %col%
java -jar lib\apksigner.jar sign --ks lib\android.jks --ks-pass pass:android 13930-v1.5-3668-mod[patched].apk
:: Alternate Key:
:: java -jar lib\apksigner.jar sign --ks lib\public.jks --ks-pass pass:public 13930-v1.5-3668-mod[patched].apk
del 13930-v1.5-3668-mod[patched].apk.idsig >nul 2>&1
echo \033[92m[Done] | %col%
goto end
:getapk
<nul set /p "=\033[96mDownloading \033[94mAetherSX2 3668... " | %col%
powershell -Command "(new-object System.Net.WebClient).DownloadFile('https://github.com/Trixarian/NetherSX2-classic/releases/download/0.0/13930-v1.5-3668.apk','13930-v1.5-3668.apk')"
echo \033[92m[Done] | %col%
goto patch
:wrongmd5
echo \033[91mError: Wrong APK provided! | %col%
echo \033[91mPlease provide a copy of AtherSX2 3668 or NetherSX2-Classic! | %col%
goto end
:nojava
echo \033[91mError: The Java Development Kit is not installed or a restart required! | %col%
echo \033[91mPlease download and install the JDK from https://www.oracle.com/java/technologies/downloads/#jdk21-windows | %col%
goto end
:end
pause