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 - name: Build VTLite
run: | 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 - name: Sign and verify the apk
run: | run: |
java -jar scripts/apksigner.jar sign --ks scripts/debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android smali/VTLite.apk 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.ZipEntry
import java.util.zip.ZipFile import java.util.zip.ZipFile
import java.util.zip.ZipInputStream import java.util.zip.ZipInputStream
@@ -9,10 +10,17 @@ plugins {
id 'net.nemerosa.versioning' version '2.15.1' id 'net.nemerosa.versioning' version '2.15.1'
} }
def smaliFolder = projectDir.toPath().resolve("../smali").normalize()
def scriptsFolder = projectDir.toPath().resolve("../scripts").normalize()
versionFile { versionFile {
file = projectDir.toPath().resolve("src/main/assets/version.properties").toFile() file = projectDir.toPath().resolve("src/main/assets/version.properties").toFile()
} }
task cleanVersionFile {
projectDir.toPath().resolve("src/main/assets/version.properties").toFile().delete()
}
task exportDex { task exportDex {
doLast { doLast {
try { try {
@@ -96,25 +104,35 @@ dependencies {
compileOnly fileTree(dir: 'libs', include: ['*.jar']) compileOnly fileTree(dir: 'libs', include: ['*.jar'])
} }
task prepareDexForMerge(type: Copy) {
task cleanVersionFile { dependsOn('exportDex')
projectDir.toPath().resolve("src/main/assets/version.properties").toFile().delete() 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) { task buildVTL(type: Exec) {
dependsOn 'assembleRelease' dependsOn('prepareDexForMerge')
dependsOn 'exportDex'
workingDir(projectDir.parentFile) workingDir(projectDir.parentFile)
if (Os.isFamily("unix") || Os.isFamily("mac")) { if (Os.isFamily("unix") || Os.isFamily("mac")) {
commandLine 'bash', '-c','./scripts/build.sh' commandLine 'bash', '-c', './scripts/build.sh'
} else { } else {
commandLine 'cmd','/C', '.\\scripts\\build.bat' commandLine 'cmd', '/C', '.\\scripts\\build.bat'
} }
} }
task buildAndInstallVTL(type: Exec) { task buildAndInstallVTL(type: Exec) {
dependsOn('buildVTL') dependsOn('buildVTL')
workingDir(projectDir.toPath().resolve("../scripts").normalize().toString()) workingDir(scriptsFolder.toString())
ignoreExitValue true ignoreExitValue true
if (Os.isFamily("unix") || Os.isFamily("mac")) { if (Os.isFamily("unix") || Os.isFamily("mac")) {
commandLine 'bash', '-c', 'adb install VTLite.apk' commandLine 'bash', '-c', 'adb install VTLite.apk'
+1 -33
View File
@@ -11,38 +11,6 @@ setlocal
call :setESC call :setESC
cls 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.
echo %ESC%[1;4mBuild apk...%ESC%[0m echo %ESC%[1;4mBuild apk...%ESC%[0m
echo. echo.
@@ -55,7 +23,7 @@ if "%ERRORLEVEL%" == "0" (
exit /B 1 exit /B 1
) )
del classes6.dex del classes6.dex
del classes8.dex del classes7.dex
del assets\version.properties del assets\version.properties
echo. echo.
-24
View File
@@ -5,30 +5,6 @@ NC='\033[0m'
BOLD='\033[1m' BOLD='\033[1m'
UNDERLINE='\033[4m' 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}" echo -e "${BOLD}${UNDERLINE}Сборка apk..${NC}"
cd smali/ 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