Extract dex move to gradle task, apply to CI .yml

This commit is contained in:
saoq
2022-11-26 01:38:22 +03:00
parent 6325d8fe68
commit ccaa10d224
5 changed files with 30 additions and 121 deletions
+3 -2
View File
@@ -39,8 +39,9 @@ jobs:
- name: Build VTLite
run: |
bash scripts/buildworkflow.sh
gradle prepareDexForMerge
java -jar scripts/apktool.jar b smali -o smali/VTLite.apk --use-aapt2 -p scripts/framework/
- name: Sign and verify the apk
run: |
java -jar scripts/apksigner.jar sign --ks scripts/debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android smali/VTLite.apk
+26 -8
View File
@@ -1,3 +1,4 @@
import java.nio.file.Files
import java.util.zip.ZipEntry
import java.util.zip.ZipFile
import java.util.zip.ZipInputStream
@@ -9,10 +10,17 @@ plugins {
id 'net.nemerosa.versioning' version '2.15.1'
}
def smaliFolder = projectDir.toPath().resolve("../smali").normalize()
def scriptsFolder = projectDir.toPath().resolve("../scripts").normalize()
versionFile {
file = projectDir.toPath().resolve("src/main/assets/version.properties").toFile()
}
task cleanVersionFile {
projectDir.toPath().resolve("src/main/assets/version.properties").toFile().delete()
}
task exportDex {
doLast {
try {
@@ -96,25 +104,35 @@ dependencies {
compileOnly fileTree(dir: 'libs', include: ['*.jar'])
}
task cleanVersionFile {
projectDir.toPath().resolve("src/main/assets/version.properties").toFile().delete()
task prepareDexForMerge(type: Copy) {
dependsOn('exportDex')
into smaliFolder.toString()
from(projectDir) {
include 'classes*.dex'
}
from(projectDir) {
include 'version.properties'
into("assets")
}
doLast {
Files.newDirectoryStream(projectDir.toPath(), "classes*.dex").forEach { it.toFile().delete() }
new File(projectDir, "version.properties").delete()
}
}
task buildVTL(type: Exec) {
dependsOn 'assembleRelease'
dependsOn 'exportDex'
dependsOn('prepareDexForMerge')
workingDir(projectDir.parentFile)
if (Os.isFamily("unix") || Os.isFamily("mac")) {
commandLine 'bash', '-c','./scripts/build.sh'
commandLine 'bash', '-c', './scripts/build.sh'
} else {
commandLine 'cmd','/C', '.\\scripts\\build.bat'
commandLine 'cmd', '/C', '.\\scripts\\build.bat'
}
}
task buildAndInstallVTL(type: Exec) {
dependsOn('buildVTL')
workingDir(projectDir.toPath().resolve("../scripts").normalize().toString())
workingDir(scriptsFolder.toString())
ignoreExitValue true
if (Os.isFamily("unix") || Os.isFamily("mac")) {
commandLine 'bash', '-c', 'adb install VTLite.apk'
+1 -33
View File
@@ -11,38 +11,6 @@ setlocal
call :setESC
cls
echo.
echo %ESC%[1;4mMove dex6 to source dir...%ESC%[0m
echo.
move app\classes6.dex smali\
if "%ERRORLEVEL%" == "0" (
echo %ESC%[92mSuccessful%ESC%[0m
) else (
echo %ESC%[31mFailed%ESC%[0m
exit /B 1
)
echo.
echo %ESC%[1;4mMove dex7 to source dir...%ESC%[0m
echo.
move app\classes7.dex smali\
if "%ERRORLEVEL%" == "0" (
echo %ESC%[92mSuccessful%ESC%[0m
) else (
echo %ESC%[31mFailed%ESC%[0m
)
echo.
echo %ESC%[1;4mMove version.properties to source dir...%ESC%[0m
echo.
move app\version.properties smali\assets\
if "%ERRORLEVEL%" == "0" (
echo %ESC%[92mSuccessful%ESC%[0m
) else (
echo %ESC%[31mFailed%ESC%[0m
)
echo.
echo %ESC%[1;4mBuild apk...%ESC%[0m
echo.
@@ -55,7 +23,7 @@ if "%ERRORLEVEL%" == "0" (
exit /B 1
)
del classes6.dex
del classes8.dex
del classes7.dex
del assets\version.properties
echo.
-24
View File
@@ -5,30 +5,6 @@ NC='\033[0m'
BOLD='\033[1m'
UNDERLINE='\033[4m'
echo -e "${BOLD}${UNDERLINE}Перенос dex6 в папку с исходным кодом..${NC}"
mv app/classes6.dex smali/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
exit 1
fi
echo -e "${BOLD}${UNDERLINE}Перенос dex7 в папку с исходным кодом..${NC}"
mv app/classes7.dex smali/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
fi
echo -e "${BOLD}${UNDERLINE}Перенос version.properties в папку с исходным кодом..${NC}"
mv app/version.properties smali/assets/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
fi
echo -e "${BOLD}${UNDERLINE}Сборка apk..${NC}"
cd smali/
-54
View File
@@ -1,54 +0,0 @@
#!/bin/bash
echo -e "${BOLD}${UNDERLINE}Сборка dex..${NC}\n"
gradle versionFile
gradle assembleRelease
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
exit 1
fi
echo -e "${BOLD}${UNDERLINE}Экспорт dex..${NC}"
gradle exportDex
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
exit 1
fi
echo -e "${BOLD}${UNDERLINE}Перенос dex6 в папку с исходным кодом..${NC}"
mv app/classes6.dex smali/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
exit 1
fi
echo -e "${BOLD}${UNDERLINE}Перенос dex7 в папку с исходным кодом..${NC}"
mv app/classes7.dex smali/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
fi
echo -e "${BOLD}${UNDERLINE}Перенос version.properties в папку с исходным кодом..${NC}"
mv app/version.properties smali/assets/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
fi
echo -e "${BOLD}${UNDERLINE}Сборка apk..${NC}"
java -jar scripts/apktool.jar b smali -o smali/VTLite.apk --use-aapt2 -p scripts/framework/
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успех!${NC}\n"
else
echo -e "${RED}Провал.${NC}\n"
exit 1
fi