From 204b7feb1b18e82211a4986a008df78f2036f633 Mon Sep 17 00:00:00 2001 From: Syuugo Date: Thu, 14 Nov 2024 21:29:18 +0900 Subject: [PATCH] =?UTF-8?q?libxposed=20=E3=81=AB=E5=AF=BE=E5=BF=9C=20(#207?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 80 ++++++++++++------ .gitignore | 6 +- HOOK_SAMPLE.md | 4 +- README.md | 2 +- app/build.gradle | 8 +- app/libxposed/api-100.jar | Bin 0 -> 19257 bytes app/proguard-rules.pro | 29 ++++++- app/src/main/AndroidManifest.xml | 3 +- .../resources/META-INF/xposed/java_init.list | 1 + .../resources/META-INF/xposed/module.prop | 3 + .../main/resources/META-INF/xposed/scope.list | 1 + gradle.properties | 19 ++--- settings.gradle | 7 +- 13 files changed, 114 insertions(+), 49 deletions(-) create mode 100644 app/libxposed/api-100.jar create mode 100644 app/src/main/resources/META-INF/xposed/java_init.list create mode 100644 app/src/main/resources/META-INF/xposed/module.prop create mode 100644 app/src/main/resources/META-INF/xposed/scope.list diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0e583435..d9acc3f0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,12 +2,11 @@ name: Build on: push: - paths: - - '.github/workflows/build.yml' - - 'app/**' - - 'gradle/**' - - '*.gradle' - - '*.properties' + paths-ignore: + - '*.md' + - '*.txt' + tags-ignore: + - '*' pull_request: workflow_dispatch: inputs: @@ -28,6 +27,7 @@ jobs: runs-on: ubuntu-latest permissions: contents: write + discussions: write steps: - name: Checkout @@ -36,15 +36,15 @@ jobs: - name: Set environments run: | { - echo "version=v$(grep versionName app/build.gradle | awk '{print $2}' | tr -d \")" - echo "line_ver_code=$(grep HOOK_TARGET_VERSION app/build.gradle | awk '{print $4}' | tr -d \'\")" + echo "packageId=$(grep namespace app/build.gradle | awk '{print $2}' | tr -d \')" + echo "versionName=v$(grep versionName app/build.gradle | awk '{print $2}' | tr -d \")" + echo "versionCode=$(grep versionCode app/build.gradle | awk '{print $2}')" + echo "LINE_versionName=$(echo '${{ env.line_ver_code }}' | awk '{print substr($0,1,2)"."substr($0,3,2)"."int(substr($0,5,1))}')" + echo "LINE_versionCode=$(grep HOOK_TARGET_VERSION app/build.gradle | awk '{print $4}' | tr -d \'\")" echo "commit=$(echo ${{ github.sha }} | cut -c-7)" echo "repo=$(echo ${GITHUB_REPOSITORY#$GITHUB_REPOSITORY_OWNER/})" } >> $GITHUB_ENV - - name: Set LINE Original Version Name - run: echo "line_ver=$(echo '${{ env.line_ver_code }}' | awk '{print substr($0,1,2)"."substr($0,3,2)"."int(substr($0,5,1))}')" >> $GITHUB_ENV - - name: Setup Java uses: actions/setup-java@v4 with: @@ -55,7 +55,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Get previous version name - uses: oprypin/find-latest-tag@v1.1.2 + uses: oprypin/find-latest-tag@v1 if: github.event.inputs.release == 'true' id: previous with: @@ -74,14 +74,14 @@ jobs: echo "" exit 1 fi - if [ "${{ steps.previous.outputs.tag }}" == "${{ env.version }}" ]; then + if [ "${{ steps.previous.outputs.tag }}" == "${{ env.versionName }}" ]; then echo -e "\nERROR!\nThe same tag already exists!\n" echo "Please change versionName in build.gradle" echo "" exit 1 fi - - name: Build with Gradle + - name: Build module run: | if [ "${{ inputs.release }}" == "true" ]; then echo "${{ secrets.STORE_FILE }}" | base64 -d > app/release.jks @@ -89,7 +89,7 @@ jobs: export KEY_ALIAS="${{ secrets.KEY_ALIAS }}" export KEY_PASSWORD="${{ secrets.KEY_PASSWORD }}" ./gradlew assembleRelease --no-daemon --stacktrace - cp -f app/build/outputs/apk/release/app-release.apk ${{ env.repo }}-${{ env.version }}.apk + cp -f app/build/outputs/apk/release/app-release.apk ${{ env.repo }}-${{ env.versionName }}.apk else ./gradlew assembleDebug --no-daemon --stacktrace fi @@ -100,43 +100,67 @@ jobs: cat << EOF > conf https://github.com/JingMatrix/LSPatch/releases/latest/download/lspatch.jar out=lspatch.jar - https://line-android-universal-download.line-scdn.net/line-${{ env.line_ver }}.apk - out=line-${{ env.line_ver }}.apk + https://line-android-universal-download.line-scdn.net/line-${{ env.LINE_versionName }}.apk + out=line-${{ env.LINE_versionName }}.apk EOF echo "Downloading APK..." aria2c --no-conf -x16 -s16 -R -m0 -V --async-dns=false -iconf echo "Patching LIME..." - java -jar lspatch.jar "line-${{ env.line_ver }}.apk" -m "app/build/outputs/apk/debug/app-debug.apk" -l 2 -v + java -jar lspatch.jar "line-${{ env.LINE_versionName }}.apk" -m "app/build/outputs/apk/debug/app-debug.apk" -l 2 -v - - name: Upload Module APK + - name: Upload module uses: actions/upload-artifact@v4 if: github.event.inputs.release != 'true' with: - name: ${{ env.repo }}-${{ env.version }}@${{ env.commit }} + name: ${{ env.repo }}-${{ env.versionName }}@${{ env.commit }} path: app/build/outputs/apk/debug/app-debug.apk if-no-files-found: error - - name: Upload Patched LINE APK + - name: Upload patched APK uses: actions/upload-artifact@v4 if: github.event.inputs.lspatch == 'true' with: - name: LINE-${{ env.line_ver }}@${{ env.commit }} - path: line-${{ env.line_ver }}-*-lspatched.apk + name: LINE-${{ env.LINE_versionName }}@${{ env.commit }} + path: line-${{ env.LINE_versionName }}-*-lspatched.apk if-no-files-found: error - - name: Release + - name: Release original repository uses: softprops/action-gh-release@v2 if: github.event.inputs.release == 'true' with: - tag_name: ${{ env.version }} + tag_name: ${{ env.versionName }} draft: false prerelease: false - files: ${{ env.repo }}-${{ env.version }}.apk + make_latest: true + discussion_category_name: Announcements + generate_release_notes: true + files: ${{ env.repo }}-${{ env.versionName }}.apk + fail_on_unmatched_files: true body: | # 更新内容 ## 対応するLINEのバージョン - ${{ env.line_ver }} + ${{ env.LINE_versionName }} ### 差分 - https://github.com/${{ github.repository }}/compare/${{ steps.previous.outputs.tag }}...${{ env.version }} + https://github.com/${{ github.repository }}/compare/${{ steps.previous.outputs.tag }}...${{ env.versionName }} + + - name: Release to Xposed repository + uses: softprops/action-gh-release@v2 + if: github.event.inputs.release == 'true' + with: + repository: Xposed-Modules-Repo/${{ env.packageId }} + tag_name: ${{ env.versionCode }}-${{ env.versionName }} + draft: false + prerelease: false + make_latest: true + files: ${{ env.repo }}-${{ env.versionName }}.apk + body: | + ## Details + https://github.com/${{ github.repository }}/releases/${{ env.versionName }} + + ## Supported LINE version + ${{ env.LINE_versionName }} + + ### Diff + https://github.com/${{ github.repository }}/compare/${{ steps.previous.outputs.tag }}...${{ env.versionName }} diff --git a/.gitignore b/.gitignore index 50a90123..149bafb3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,9 @@ # IntelliJ /.idea/ # Gradle Build -/app/build/ +build/ # Android Studio Signing APK /app/debug/ -/app/release/ \ No newline at end of file +/app/release/ +# VS Code +/.vscode/ diff --git a/HOOK_SAMPLE.md b/HOOK_SAMPLE.md index 0769056e..01c1eab2 100644 --- a/HOOK_SAMPLE.md +++ b/HOOK_SAMPLE.md @@ -1 +1,3 @@ -https://telegra.ph/%E9%80%9A%E4%BF%A1%E3%81%AE%E6%94%B9%E5%A4%89%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB-06-09 +v1.9.2 のみ対応 + + diff --git a/README.md b/README.md index 49305701..72ce3a66 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# LIME: Adkiller for LINE +# LIME: Ad-killer for LINE [![Latest Release](https://img.shields.io/github/v/release/Chipppppppppp/LIME?label=latest)](https://github.com/Chipppppppppp/LIME/releases/latest) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) diff --git a/app/build.gradle b/app/build.gradle index ba759591..64e3a1ef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,12 +59,18 @@ android { aaptOptions { additionalParameters '--allow-reserved-package-id', '--package-id', '0x64' } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } } dependencies { + compileOnly 'de.robv.android.xposed:api:82' + compileOnly files('libxposed/api-100.jar') //noinspection GradleCompatible implementation 'com.android.support:customtabs:23.0.0' - compileOnly 'de.robv.android.xposed:api:82' implementation 'org.mozilla:rhino:1.7.15' } diff --git a/app/libxposed/api-100.jar b/app/libxposed/api-100.jar new file mode 100644 index 0000000000000000000000000000000000000000..ab3914536817a6bb5b5f7a0441adc96782530a5a GIT binary patch literal 19257 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 CPnw1R literal 0 HcmV?d00001 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index ab401ede..c25c22ac 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,2 +1,29 @@ -keep class io.github.chipppppppppp.lime.Main --ignorewarnings + +# Xposed +-adaptresourcefilecontents META-INF/xposed/java_init.list +-keepattributes RuntimeVisibleAnnotations + +-keep,allowobfuscation,allowoptimization public class * extends io.github.libxposed.api.XposedModule { + public (...); + public void onPackageLoaded(...); + public void onSystemServerLoaded(...); +} +-keep,allowoptimization,allowobfuscation @io.github.libxposed.api.annotations.* class * { + @io.github.libxposed.api.annotations.BeforeInvocation ; + @io.github.libxposed.api.annotations.AfterInvocation ; +} +-keep,allowshrinking,allowoptimization,allowobfuscation class ** implements io.github.libxposed.api.XposedInterface$Hooker +-keepclassmembers,allowoptimization class ** implements io.github.libxposed.api.XposedInterface$Hooker { + public *** before(***); + public *** after(***); + public static *** before(); + public static *** before(io.github.libxposed.api.XposedInterface$BeforeHookCallback); + public static void after(); + public static void after(io.github.libxposed.api.XposedInterface$AfterHookCallback); + public static void after(io.github.libxposed.api.XposedInterface$AfterHookCallback, ***); +} + +# Obfuscation +-repackageclasses +-allowaccessmodification diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c6ba8f22..5d0067bb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,8 @@ + android:label="@string/app_name" + android:description="@string/xposed_desc">