Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7cff071
👣: Crear deb para debian
VictorH028 Apr 13, 2025
a6cbcb7
👣: Crear deb para debian
VictorH028 Apr 13, 2025
d0c9b04
👣: Crear deb para debian
VictorH028 Apr 13, 2025
26fd974
👣1.0: Crear deb para debian
VictorH028 Apr 13, 2025
65820d3
👣1.0: Crear deb para debian
VictorH028 Apr 13, 2025
332f5ac
👣1.0: Crear deb para debian
VictorH028 Apr 13, 2025
e420ee4
👣1.0: Crear deb para debian
VictorH028 Apr 13, 2025
4cb96e5
👣1.0: Crear deb para debian y termux
VictorH028 Apr 13, 2025
a65ad12
👣1.0: Crear deb para debian y termux
VictorH028 Apr 13, 2025
8f18213
👣: Añadi plugin y actualize algunas tareas
VictorH028 Apr 14, 2025
d91c15a
Merge branch 'REAndroid:master' into master
VictorH028 Apr 19, 2025
202d716
👣: Comparaciones inecesarias con `logger`
VictorH028 Apr 15, 2025
535bf90
👣: Better logic for the deb
VictorH028 Apr 22, 2025
594f861
👣: Better logic for the deb
VictorH028 Apr 22, 2025
46ff58a
👣: Better logic for the deb
VictorH028 Apr 22, 2025
ef710c5
👣: Better logic for the deb
VictorH028 Apr 22, 2025
161bc1a
Merge branch 'REAndroid:master' into master
VictorH028 Apr 29, 2025
99560a2
Merge branch 'REAndroid:master' into master
VictorH028 May 4, 2025
5ea6b48
Merge branch 'REAndroid:master' into master
VictorH028 May 5, 2025
ed4285b
Merge branch 'REAndroid:master' into master
VictorH028 May 9, 2025
a9d97c0
Merge branch 'REAndroid:master' into master
VictorH028 May 17, 2025
d3338ee
Merge branch 'REAndroid:master' into master
VictorH028 Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 113 additions & 6 deletions .github/workflows/gradle_build.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,137 @@
name: Build Jar
name: Build Jar and DEB

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch: # ---> Para ejecutar desde la interfaz

permissions:
contents: read

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'

- uses: gradle/actions/setup-gradle@v4

- name: Build with Gradle
run: ./gradlew fatJar
- uses: actions/upload-artifact@v4
run: ./gradlew fatJar --no-daemon # --> Evitar algunos errores CI

- name: Install dependencies for DEB packaging
run: |
sudo apt-get update
sudo apt-get install -y dh-make debhelper devscripts

- name: Create DEB package structure DEBIAN
run: |
################ DEBIAN #####################
mkdir -p deb-package-debian/usr/share/apkeditor
mkdir -p deb-package-debian/usr/bin
mkdir -p deb-package-debian/DEBIAN
chmod 755 deb-package-debian

# Copy the built jar
cp build/libs/*.jar deb-package-debian/usr/share/apkeditor/apkeditor.jar

# Create launcher script
echo '#!/bin/sh' > deb-package-debian/usr/bin/apkeditor
echo 'java -jar /usr/share/apkeditor/apkeditor.jar "$@"' >> deb-package-debian/usr/bin/apkeditor
chmod +x deb-package-debian/usr/bin/apkeditor

# Create control file
cat > deb-package-debian/DEBIAN/control <<EOL
Package: apkeditor
Version: 1.4-${{ github.run_number }}
Section: utils
Priority: optional
Architecture: all
Maintainer: VictorH028 <t.me/demonr_rip>
Description: APK Editor tool
A tool for editing APK files.
EOL

- name: Create DEB package structure TERMUX
run: |
############## TERMUX ###############
mkdir -p deb-package-termux/data/data/com.termux/files/usr/share/apkeditor
mkdir -p deb-package-termux/data/data/com.termux/files/usr/bin
mkdir -p deb-package-termux/DEBIAN
chmod 755 deb-package-termux

# Copy the built jar
cp build/libs/*.jar deb-package-termux/data/data/com.termux/files/usr/share/apkeditor/apkeditor.jar

# Create launcher script
#
cat > deb-package-termux/data/data/com.termux/files/usr/bin/apkeditor << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash

JAR_PATH="/data/data/com.termux/files/usr/share/apkeditor/apkeditor.jar"
if [ ! -f "$JAR_PATH" ]; then
echo "Error: I can't find apkeditor.jar en $JAR_PATH" >&2
exit 1
fi

JAVA_OPTS="-Xmx512M "

exec java -jar $JAVA_OPTS "$JAR_PATH" "$@"
EOF


chmod +x deb-package-termux/data/data/com.termux/files/usr/bin/apkeditor

# Create control file
cat > deb-package-termux/DEBIAN/control <<EOL
Package: apkeditor
Version: 1.4-${{ github.run_number }}
Section: utils
Priority: optional
Architecture: all
Maintainer: VictorH028 <t.me/demonr_rip>
Description: APK Editor tool
A tool for editing APK files.
EOL


- name: Build DEB package
run: |
#### debian ####
dpkg-deb --build deb-package-debian
mkdir -p artifacts
mv deb-package-debian.deb artifacts/apkeditor_1.4-${{ github.run_number }}_all.deb
#### termux ####
dpkg-deb --build deb-package-termux
mkdir -p artifacts1
mv deb-package-termux.deb artifacts1/apkeditor_1.4-${{ github.run_number }}_all.deb


- name: Upload DEBIAN-DEB-APKEDITOR
uses: actions/upload-artifact@v4
with:
name: DEBIAN-DEB-APKEDITOR
path: artifacts

- name: Upload TERMUX-DEB-APKEDITOR
uses: actions/upload-artifact@v4
with:
name: APKEditor
path: build/libs
name: TERMUX-DEB-APKEDITOR
path: artifacts1

- name: Upload APKEDITOR.jar
uses: actions/upload-artifact@v4
with:
name: APKEDITOR
path: build/libs


19 changes: 13 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@

apply plugin: 'application'
apply plugin: 'java'

group 'com.reandroid.apkeditor'
version '1.4.5'

mainClassName = 'com.reandroid.apkeditor.Main'

java {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
Expand All @@ -16,19 +18,20 @@ if (JavaVersion.current().isJava8Compatible()) {
}
}
}

repositories {
mavenCentral()
}

dependencies {
//implementation("io.github.reandroid:ARSCLib:+")
compile(files("$rootProject.projectDir/libs/ARSCLib.jar"))
implementation(files("$rootProject.projectDir/libs/ARSCLib.jar"))

// built from: https://github.com/REAndroid/smali-lib
compile(files("$rootProject.projectDir/libs/smali.jar"))
implementation(files("$rootProject.projectDir/libs/smali.jar"))

// built from: https://github.com/REAndroid/JCommand
compile(files("$rootProject.projectDir/libs/JCommand.jar"))
implementation(files("$rootProject.projectDir/libs/JCommand.jar"))
}

processResources {
Expand All @@ -40,19 +43,23 @@ processResources {
javadoc {
exclude('com/reandroid/test/**')
}

jar {
exclude('com/reandroid/test/**')
duplicatesStrategy = DuplicatesStrategy.FAIL
manifest {
attributes 'Main-Class': mainClassName
}
}

task fatJar(type: Jar) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes(
'Main-Class': 'com.reandroid.apkeditor.Main'
'Main-Class': mainClassName
)
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}

Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@ public static void removeAttributeFromManifestByName(AndroidManifestBlock androi
}
return;
}
// Antes hera un valor entero
boolean removed = manifestElement.removeAttributesWithName(resourceName);
if (removed && logger != null) {
if (removed ) {
logger.logMessage("Removed-attribute : " + resourceName);
}
}
Expand All @@ -86,7 +87,7 @@ public static void removeAttributeFromManifestById(AndroidManifestBlock androidM
return;
}
boolean removed = manifestElement.removeAttributesWithId(resourceId);
if (removed && logger != null) {
if (removed ) {
logger.logMessage("Removed-attribute : " + HexUtil.toHex8("@0x", resourceId));
}
}
Expand All @@ -108,15 +109,15 @@ public static void removeAttributeFromManifestAndApplication(AndroidManifestBloc
ResXmlElement applicationElement = manifestElement.getElement(
AndroidManifest.TAG_application);

if(removed && logger != null) {
if(removed ) {
logger.logMessage("Attributes on <manifest> removed: "
+ HexUtil.toHex8("0x", resourceId) + " (" + nameForLogging + ")");
}
if(applicationElement == null){
return;
}
removed = applicationElement.removeAttributesWithId(resourceId);
if(removed && logger != null) {
if(removed ) {
logger.logMessage("Attributes on <application> removed: "
+ HexUtil.toHex8("0x", resourceId) + " (" + nameForLogging + ")");
}
Expand Down