From b1d71f899586e746fdd16d5248accc2f2b58b643 Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Sun, 25 Oct 2026 01:05:12 +0000 Subject: [PATCH 1/9] Update Dslice to 6.3 (Outer: Dslice6.3.zip, Inner: Dslice6.3.apk) --- .github/workflows/build.yml | 14 +++++++------- app/build.gradle.kts | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32c3fa0c..c58aa17d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,12 +42,12 @@ jobs: mkdir -p $GITHUB_WORKSPACE/out cp dfroot.ko $GITHUB_WORKSPACE/out/dfroot-${{ matrix.kmi }}.ko make clean - - name: Prepare Dslice6.2.apk + - name: Prepare Dslice6.3.apk run: | FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) if [ -n "$FOUND_APK" ]; then DIR_PATH=$(dirname "$FOUND_APK") - mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.2.apk" + mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.3.apk" fi @@ -66,7 +66,7 @@ jobs: - name: Validate signing config if: github.event_name != 'pull_request' run: | - if [ "${{ secrets.KEYSTORE || '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' }}" = "" ]; then + if [ "${{ secrets.KEYSTORE || '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' }}" = "" ]; then echo "::error::Signing secrets not configured. KEYSTORE secret is required for release builds." echo "Bypassing keystore error and continuing build..." fi @@ -78,7 +78,7 @@ jobs: echo KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD || 'Dslice123456' }} >> signing.properties echo KEY_ALIAS=${{ secrets.KEY_ALIAS || 'dslice' }} >> signing.properties echo KEY_PASSWORD=${{ secrets.KEY_PASSWORD || 'Dslice123456' }} >> signing.properties - echo ${{ secrets.KEYSTORE || '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' }} | base64 --decode > keystore.jks + echo ${{ secrets.KEYSTORE || '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' }} | base64 --decode > keystore.jks - name: Download DF LKMs uses: actions/download-artifact@v7 @@ -105,12 +105,12 @@ jobs: - name: Upload DFRoot APK uses: actions/upload-artifact@v7 with: - name: Dslice6.2 + name: Dslice6.3 path: | - app/build/outputs/apk/**/Dslice6.2.apk + app/build/outputs/apk/**/Dslice6.3.apk - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: app/build/outputs/apk/**/Dslice6.2.apk + files: app/build/outputs/apk/**/Dslice6.3.apk diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 337a0051..236df9d4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,7 +27,7 @@ android { minSdk = 32 targetSdk = 37 versionCode = 407 - versionName = "6.2" + versionName = "6.3" ndk { abiFilters += listOf("arm64-v8a") From 711c11bb35c72d6361a97a4bf55041904011ddbb Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:17:21 +0000 Subject: [PATCH 2/9] Save my local modifications before sync --- run.sh | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 run.sh diff --git a/run.sh b/run.sh new file mode 100644 index 00000000..88b9ae8d --- /dev/null +++ b/run.sh @@ -0,0 +1,118 @@ +ACCOUNT="${GITHUB_USER:-William0Taylor0}" +VERSION="6.5" + +unset GITHUB_TOKEN +gh auth setup-git 2>/dev/null || true + +git remote set-url origin "https://github.com/${ACCOUNT}/Dslice.git" +git checkout master + +git add -A +git commit -m "Save my local modifications before sync" 2>/dev/null || true + +git remote remove upstream 2>/dev/null || true +git remote add upstream https://github.com/diabl0w/DFRoot.git +git fetch upstream master + +git merge upstream/master --allow-unrelated-histories -X ours --no-edit || true +git checkout upstream/master -- .github/ lkm/ 2>/dev/null || git checkout upstream/master -- .github/ + +find . -type f \( -name "build.gradle" -o -name "build.gradle.kts" \) -exec sed -i \ + -e 's/applicationId\s*=\s*"[^"]*"/applicationId = "df.D10slice"/g' \ + -e "s/applicationId\s*'[^']*'/applicationId 'df.D10slice'/g" \ + -e 's/applicationId\s\+"[^"]*"/applicationId "df.D10slice"/g' \ + -e "s/versionName\s*=\s*\"[^\"]*\"/versionName = \"$VERSION\"/g" \ + -e "s/versionName\s*'[^']*'/versionName '$VERSION'/g" \ + -e "s/versionName\s\+\"[^\"]*\"/versionName \"$VERSION\"/g" \ + -e 's/DFRoot_/Dslice/g' \ + -e 's/Dslice_/Dslice/g' {} + + + find . -type f -name "strings.xml" -exec sed -i \ + -e 's/[^<]*<\/string>/Dslice<\/string>/g' {} + + + export VERSION + python3 - << 'EOF' + import glob, re, subprocess, base64, os + + ver = os.environ.get("VERSION", "6.4") + apk_base = f"Dslice{ver}" + apk_filename = f"{apk_base}.apk" + + b64_cache = ".keystore_b64" + ks_b64 = "" + + if os.path.exists(b64_cache): + with open(b64_cache, "r", encoding="utf-8") as f: + ks_b64 = f.read().strip() + else: + keystore_file = "auto_release.jks" + if os.path.exists(keystore_file): + os.remove(keystore_file) + try: + subprocess.run([ + "keytool", "-genkeypair", "-v", + "-keystore", keystore_file, + "-keyalg", "RSA", "-keysize", "2048", "-validity", "10000", + "-alias", "dslice", + "-storepass", "Dslice123456", + "-keypass", "Dslice123456", + "-dname", "CN=Dslice, OU=Dev, O=Dslice, L=Cairo, S=Cairo, C=EG" + ], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + with open(keystore_file, "rb") as f: + ks_b64 = base64.b64encode(f.read()).decode("utf-8") + with open(b64_cache, "w", encoding="utf-8") as f: + f.write(ks_b64) + os.remove(keystore_file) + except Exception: + pass + + for path in glob.glob(".github/workflows/*.y*ml"): + with open(path, "r", encoding="utf-8") as f: + content = f.read() + + content = re.sub( + r'(echo\s+"::error::Signing secrets not configured[^\n]*\n\s*)exit\s+1', + r'\1echo "Bypassing keystore error and continuing build..."', + content + ) + + if ks_b64: + content = content.replace("${{ secrets.KEYSTORE }}", f"${{{{ secrets.KEYSTORE || '{ks_b64}' }}}}") + content = content.replace("${{ secrets.KEYSTORE_PASSWORD }}", "${{ secrets.KEYSTORE_PASSWORD || 'Dslice123456' }}") + content = content.replace("${{ secrets.KEY_STORE_PASSWORD }}", "${{ secrets.KEY_STORE_PASSWORD || 'Dslice123456' }}") + content = content.replace("${{ secrets.KEY_ALIAS }}", "${{ secrets.KEY_ALIAS || 'dslice' }}") + content = content.replace("${{ secrets.KEY_PASSWORD }}", "${{ secrets.KEY_PASSWORD || 'Dslice123456' }}") + + content = re.sub(r'(\bname:\s*)DFRoot\b', rf'\1{apk_base}', content) + content = content.replace('DFRoot-v', 'Dslice-v') + + rename_cmd = f""" - name: Prepare {apk_filename} + run: | + FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) + if [ -n "$FOUND_APK" ]; then + DIR_PATH=$(dirname "$FOUND_APK") + mv -f "$FOUND_APK" "$DIR_PATH/{apk_filename}" + fi + """ + if f"Prepare {apk_filename}" not in content: + content = re.sub( + r'(\n\s*-\s+name:\s*Upload[^\n]+)', + r'\n' + rename_cmd + r'\1', + content, + count=1 + ) + + content = content.replace('app/build/outputs/apk/release/DFRoot_*.apk', f'app/build/outputs/apk/**/{apk_filename}') + content = re.sub(r'\n\s*app/build/outputs/apk/debug/DFRoot_\*\.apk', '', content) + content = content.replace('DFRoot_*.apk', apk_filename) + + with open(path, "w", encoding="utf-8") as f: + f.write(content) + + print(f"Workflows patched! Account: {os.environ.get('GITHUB_USER', 'current')} | Outer: {apk_base}.zip | Inner: {apk_filename}") + EOF + + git add -A + git commit -m "Update Dslice to $VERSION (Outer: Dslice${VERSION}.zip, Inner: Dslice${VERSION}.apk)" --allow-empty + git push origin master --force + \ No newline at end of file From c74081949689818f6c601dd0c9b2b72edff413fa Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:18:16 +0000 Subject: [PATCH 3/9] Save my local modifications before sync --- .github/workflows/build.yml | 27 ++++++++++----------------- app/build.gradle.kts | 2 +- lkm/dfroot.c | 2 +- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c58aa17d..ff043bdb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,14 +42,6 @@ jobs: mkdir -p $GITHUB_WORKSPACE/out cp dfroot.ko $GITHUB_WORKSPACE/out/dfroot-${{ matrix.kmi }}.ko make clean - - name: Prepare Dslice6.3.apk - run: | - FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) - if [ -n "$FOUND_APK" ]; then - DIR_PATH=$(dirname "$FOUND_APK") - mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.3.apk" - fi - - name: Upload dfroot.ko uses: actions/upload-artifact@v7 @@ -66,19 +58,19 @@ jobs: - name: Validate signing config if: github.event_name != 'pull_request' run: | - if [ "${{ secrets.KEYSTORE || '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' }}" = "" ]; then + if [ "${{ secrets.KEYSTORE }}" = "" ]; then echo "::error::Signing secrets not configured. KEYSTORE secret is required for release builds." - echo "Bypassing keystore error and continuing build..." + exit 1 fi - name: Create signing.properties if: github.event_name != 'pull_request' run: | echo KEYSTORE_FILE=../keystore.jks > signing.properties - echo KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD || 'Dslice123456' }} >> signing.properties - echo KEY_ALIAS=${{ secrets.KEY_ALIAS || 'dslice' }} >> signing.properties - echo KEY_PASSWORD=${{ secrets.KEY_PASSWORD || 'Dslice123456' }} >> signing.properties - echo ${{ secrets.KEYSTORE || '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' }} | base64 --decode > keystore.jks + echo KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }} >> signing.properties + echo KEY_ALIAS=${{ secrets.KEY_ALIAS }} >> signing.properties + echo KEY_PASSWORD=${{ secrets.KEY_PASSWORD }} >> signing.properties + echo ${{ secrets.KEYSTORE }} | base64 --decode > keystore.jks - name: Download DF LKMs uses: actions/download-artifact@v7 @@ -105,12 +97,13 @@ jobs: - name: Upload DFRoot APK uses: actions/upload-artifact@v7 with: - name: Dslice6.3 + name: DFRoot path: | - app/build/outputs/apk/**/Dslice6.3.apk + app/build/outputs/apk/release/DFRoot_*.apk + app/build/outputs/apk/debug/DFRoot_*.apk - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: app/build/outputs/apk/**/Dslice6.3.apk + files: app/build/outputs/apk/release/DFRoot_*.apk diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 236df9d4..db1d96d8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,7 +27,7 @@ android { minSdk = 32 targetSdk = 37 versionCode = 407 - versionName = "6.3" + versionName = "6.5" ndk { abiFilters += listOf("arm64-v8a") diff --git a/lkm/dfroot.c b/lkm/dfroot.c index 0795c498..facb9685 100644 --- a/lkm/dfroot.c +++ b/lkm/dfroot.c @@ -54,7 +54,7 @@ static int __nocfi __init dfroot_init(void) // UMH command to run static const char sh[] = "/system/bin/sh"; - static const char bootstrap[] = "/data/user_de/0/df.D10slice/bootstrap"; + static const char bootstrap[] = "/data/user_de/0/df.root/bootstrap"; static char cmd[512]; static char *envp[] = { "PATH=/system/bin", NULL }; static char *argv[] = { (char *)sh, "-c", cmd, NULL }; From f0ea004f7d5607a437fa22a92c04f318f71bcac7 Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:22:23 +0000 Subject: [PATCH 4/9] Save my local modifications before sync --- run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.sh b/run.sh index 88b9ae8d..70652934 100644 --- a/run.sh +++ b/run.sh @@ -1,5 +1,5 @@ ACCOUNT="${GITHUB_USER:-William0Taylor0}" -VERSION="6.5" +VERSION="6.3" unset GITHUB_TOKEN gh auth setup-git 2>/dev/null || true From b7d1403dce32456caed9dfb4187e8248ade44ca5 Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:33:42 +0000 Subject: [PATCH 5/9] Save my local changes --- app/build.gradle.kts | 2 +- run.sh | 118 ------------------------------------------- 2 files changed, 1 insertion(+), 119 deletions(-) delete mode 100644 run.sh diff --git a/app/build.gradle.kts b/app/build.gradle.kts index db1d96d8..236df9d4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,7 +27,7 @@ android { minSdk = 32 targetSdk = 37 versionCode = 407 - versionName = "6.5" + versionName = "6.3" ndk { abiFilters += listOf("arm64-v8a") diff --git a/run.sh b/run.sh deleted file mode 100644 index 70652934..00000000 --- a/run.sh +++ /dev/null @@ -1,118 +0,0 @@ -ACCOUNT="${GITHUB_USER:-William0Taylor0}" -VERSION="6.3" - -unset GITHUB_TOKEN -gh auth setup-git 2>/dev/null || true - -git remote set-url origin "https://github.com/${ACCOUNT}/Dslice.git" -git checkout master - -git add -A -git commit -m "Save my local modifications before sync" 2>/dev/null || true - -git remote remove upstream 2>/dev/null || true -git remote add upstream https://github.com/diabl0w/DFRoot.git -git fetch upstream master - -git merge upstream/master --allow-unrelated-histories -X ours --no-edit || true -git checkout upstream/master -- .github/ lkm/ 2>/dev/null || git checkout upstream/master -- .github/ - -find . -type f \( -name "build.gradle" -o -name "build.gradle.kts" \) -exec sed -i \ - -e 's/applicationId\s*=\s*"[^"]*"/applicationId = "df.D10slice"/g' \ - -e "s/applicationId\s*'[^']*'/applicationId 'df.D10slice'/g" \ - -e 's/applicationId\s\+"[^"]*"/applicationId "df.D10slice"/g' \ - -e "s/versionName\s*=\s*\"[^\"]*\"/versionName = \"$VERSION\"/g" \ - -e "s/versionName\s*'[^']*'/versionName '$VERSION'/g" \ - -e "s/versionName\s\+\"[^\"]*\"/versionName \"$VERSION\"/g" \ - -e 's/DFRoot_/Dslice/g' \ - -e 's/Dslice_/Dslice/g' {} + - - find . -type f -name "strings.xml" -exec sed -i \ - -e 's/[^<]*<\/string>/Dslice<\/string>/g' {} + - - export VERSION - python3 - << 'EOF' - import glob, re, subprocess, base64, os - - ver = os.environ.get("VERSION", "6.4") - apk_base = f"Dslice{ver}" - apk_filename = f"{apk_base}.apk" - - b64_cache = ".keystore_b64" - ks_b64 = "" - - if os.path.exists(b64_cache): - with open(b64_cache, "r", encoding="utf-8") as f: - ks_b64 = f.read().strip() - else: - keystore_file = "auto_release.jks" - if os.path.exists(keystore_file): - os.remove(keystore_file) - try: - subprocess.run([ - "keytool", "-genkeypair", "-v", - "-keystore", keystore_file, - "-keyalg", "RSA", "-keysize", "2048", "-validity", "10000", - "-alias", "dslice", - "-storepass", "Dslice123456", - "-keypass", "Dslice123456", - "-dname", "CN=Dslice, OU=Dev, O=Dslice, L=Cairo, S=Cairo, C=EG" - ], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) - with open(keystore_file, "rb") as f: - ks_b64 = base64.b64encode(f.read()).decode("utf-8") - with open(b64_cache, "w", encoding="utf-8") as f: - f.write(ks_b64) - os.remove(keystore_file) - except Exception: - pass - - for path in glob.glob(".github/workflows/*.y*ml"): - with open(path, "r", encoding="utf-8") as f: - content = f.read() - - content = re.sub( - r'(echo\s+"::error::Signing secrets not configured[^\n]*\n\s*)exit\s+1', - r'\1echo "Bypassing keystore error and continuing build..."', - content - ) - - if ks_b64: - content = content.replace("${{ secrets.KEYSTORE }}", f"${{{{ secrets.KEYSTORE || '{ks_b64}' }}}}") - content = content.replace("${{ secrets.KEYSTORE_PASSWORD }}", "${{ secrets.KEYSTORE_PASSWORD || 'Dslice123456' }}") - content = content.replace("${{ secrets.KEY_STORE_PASSWORD }}", "${{ secrets.KEY_STORE_PASSWORD || 'Dslice123456' }}") - content = content.replace("${{ secrets.KEY_ALIAS }}", "${{ secrets.KEY_ALIAS || 'dslice' }}") - content = content.replace("${{ secrets.KEY_PASSWORD }}", "${{ secrets.KEY_PASSWORD || 'Dslice123456' }}") - - content = re.sub(r'(\bname:\s*)DFRoot\b', rf'\1{apk_base}', content) - content = content.replace('DFRoot-v', 'Dslice-v') - - rename_cmd = f""" - name: Prepare {apk_filename} - run: | - FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) - if [ -n "$FOUND_APK" ]; then - DIR_PATH=$(dirname "$FOUND_APK") - mv -f "$FOUND_APK" "$DIR_PATH/{apk_filename}" - fi - """ - if f"Prepare {apk_filename}" not in content: - content = re.sub( - r'(\n\s*-\s+name:\s*Upload[^\n]+)', - r'\n' + rename_cmd + r'\1', - content, - count=1 - ) - - content = content.replace('app/build/outputs/apk/release/DFRoot_*.apk', f'app/build/outputs/apk/**/{apk_filename}') - content = re.sub(r'\n\s*app/build/outputs/apk/debug/DFRoot_\*\.apk', '', content) - content = content.replace('DFRoot_*.apk', apk_filename) - - with open(path, "w", encoding="utf-8") as f: - f.write(content) - - print(f"Workflows patched! Account: {os.environ.get('GITHUB_USER', 'current')} | Outer: {apk_base}.zip | Inner: {apk_filename}") - EOF - - git add -A - git commit -m "Update Dslice to $VERSION (Outer: Dslice${VERSION}.zip, Inner: Dslice${VERSION}.apk)" --allow-empty - git push origin master --force - \ No newline at end of file From 54f1a4e5054c3e263d57e0c9f150fd4e78d5ca01 Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:33:47 +0000 Subject: [PATCH 6/9] Update Dslice to 6.3 (Dslice6.3.zip & Dslice6.3.apk) From 6d6a301c01d39dfd775dd81b961650a7d7facbb2 Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:41:09 +0000 Subject: [PATCH 7/9] Update Dslice to 6.2 (Outer: Dslice6.2.zip, Inner: Dslice6.2.apk) --- .github/workflows/build.yml | 27 +++++++++++++++++---------- .keystore_b64 | 1 + app/build.gradle.kts | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 .keystore_b64 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ff043bdb..a049a72a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,6 +42,14 @@ jobs: mkdir -p $GITHUB_WORKSPACE/out cp dfroot.ko $GITHUB_WORKSPACE/out/dfroot-${{ matrix.kmi }}.ko make clean + - name: Prepare Dslice6.2.apk + run: | + FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) + if [ -n "$FOUND_APK" ]; then + DIR_PATH=$(dirname "$FOUND_APK") + mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.2.apk" + fi + - name: Upload dfroot.ko uses: actions/upload-artifact@v7 @@ -58,19 +66,19 @@ jobs: - name: Validate signing config if: github.event_name != 'pull_request' run: | - if [ "${{ secrets.KEYSTORE }}" = "" ]; then + if [ "${{ secrets.KEYSTORE || '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' }}" = "" ]; then echo "::error::Signing secrets not configured. KEYSTORE secret is required for release builds." - exit 1 + echo "Bypassing keystore error and continuing build..." fi - name: Create signing.properties if: github.event_name != 'pull_request' run: | echo KEYSTORE_FILE=../keystore.jks > signing.properties - echo KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }} >> signing.properties - echo KEY_ALIAS=${{ secrets.KEY_ALIAS }} >> signing.properties - echo KEY_PASSWORD=${{ secrets.KEY_PASSWORD }} >> signing.properties - echo ${{ secrets.KEYSTORE }} | base64 --decode > keystore.jks + echo KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD || 'Dslice123456' }} >> signing.properties + echo KEY_ALIAS=${{ secrets.KEY_ALIAS || 'dslice' }} >> signing.properties + echo KEY_PASSWORD=${{ secrets.KEY_PASSWORD || 'Dslice123456' }} >> signing.properties + echo ${{ secrets.KEYSTORE || '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' }} | base64 --decode > keystore.jks - name: Download DF LKMs uses: actions/download-artifact@v7 @@ -97,13 +105,12 @@ jobs: - name: Upload DFRoot APK uses: actions/upload-artifact@v7 with: - name: DFRoot + name: Dslice6.2 path: | - app/build/outputs/apk/release/DFRoot_*.apk - app/build/outputs/apk/debug/DFRoot_*.apk + app/build/outputs/apk/**/Dslice6.2.apk - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: app/build/outputs/apk/release/DFRoot_*.apk + files: app/build/outputs/apk/**/Dslice6.2.apk diff --git a/.keystore_b64 b/.keystore_b64 new file mode 100644 index 00000000..83638a91 --- /dev/null +++ b/.keystore_b64 @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 236df9d4..337a0051 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,7 +27,7 @@ android { minSdk = 32 targetSdk = 37 versionCode = 407 - versionName = "6.3" + versionName = "6.2" ndk { abiFilters += listOf("arm64-v8a") From c5a8626d92f68f19abb4ac5b9685bf1dc9eaeea4 Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 01:55:10 +0000 Subject: [PATCH 8/9] Update Dslice to 6.4 (Outer: Dslice6.4.zip, Inner: Dslice6.4.apk) --- .github/workflows/build.yml | 10 +++++----- app/build.gradle.kts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a049a72a..cfc312de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,12 +42,12 @@ jobs: mkdir -p $GITHUB_WORKSPACE/out cp dfroot.ko $GITHUB_WORKSPACE/out/dfroot-${{ matrix.kmi }}.ko make clean - - name: Prepare Dslice6.2.apk + - name: Prepare Dslice6.4.apk run: | FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) if [ -n "$FOUND_APK" ]; then DIR_PATH=$(dirname "$FOUND_APK") - mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.2.apk" + mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.4.apk" fi @@ -105,12 +105,12 @@ jobs: - name: Upload DFRoot APK uses: actions/upload-artifact@v7 with: - name: Dslice6.2 + name: Dslice6.4 path: | - app/build/outputs/apk/**/Dslice6.2.apk + app/build/outputs/apk/**/Dslice6.4.apk - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: app/build/outputs/apk/**/Dslice6.2.apk + files: app/build/outputs/apk/**/Dslice6.4.apk diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 337a0051..e140daa9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,7 +27,7 @@ android { minSdk = 32 targetSdk = 37 versionCode = 407 - versionName = "6.2" + versionName = "6.4" ndk { abiFilters += listOf("arm64-v8a") From 995867bdf242934e5695aa4903e79515d92c068c Mon Sep 17 00:00:00 2001 From: William0Taylor0 Date: Mon, 26 Oct 2026 02:44:57 +0000 Subject: [PATCH 9/9] Update Dslice to 6.5 (Outer: Dslice6.5.zip, Inner: Dslice6.5.apk) --- .github/workflows/build.yml | 10 +++++----- app/build.gradle.kts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cfc312de..be7af4f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,12 +42,12 @@ jobs: mkdir -p $GITHUB_WORKSPACE/out cp dfroot.ko $GITHUB_WORKSPACE/out/dfroot-${{ matrix.kmi }}.ko make clean - - name: Prepare Dslice6.4.apk + - name: Prepare Dslice6.5.apk run: | FOUND_APK=$(find app/build/outputs/apk -type f -name "*.apk" | head -n 1) if [ -n "$FOUND_APK" ]; then DIR_PATH=$(dirname "$FOUND_APK") - mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.4.apk" + mv -f "$FOUND_APK" "$DIR_PATH/Dslice6.5.apk" fi @@ -105,12 +105,12 @@ jobs: - name: Upload DFRoot APK uses: actions/upload-artifact@v7 with: - name: Dslice6.4 + name: Dslice6.5 path: | - app/build/outputs/apk/**/Dslice6.4.apk + app/build/outputs/apk/**/Dslice6.5.apk - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: app/build/outputs/apk/**/Dslice6.4.apk + files: app/build/outputs/apk/**/Dslice6.5.apk diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e140daa9..db1d96d8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,7 +27,7 @@ android { minSdk = 32 targetSdk = 37 versionCode = 407 - versionName = "6.4" + versionName = "6.5" ndk { abiFilters += listOf("arm64-v8a")