Просмотр исходного кода

Merge pull request #1908 from woruteyqi/main

添加自助还原日志工作流
Kudomaga 3 месяцев назад
Родитель
Сommit
360d4e6ae1
1 измененных файлов с 104 добавлено и 0 удалено
  1. 104 0
      .github/workflows/retrace-log.yml

+ 104 - 0
.github/workflows/retrace-log.yml

@@ -0,0 +1,104 @@
+name: Retrace Mapped Log
+
+on:
+  workflow_dispatch:
+    inputs:
+      version:
+        description: "APP版本,例如 3.26.15 或 3.26.16-beta.9"
+        required: true
+        type: string
+
+      log:
+        description: "Base64 编码后的日志内容"
+        required: true
+        type: string
+
+permissions:
+  contents: read
+
+
+jobs:
+  retrace:
+    name: Retrace Log
+    runs-on: ubuntu-latest
+
+    steps:
+
+      - name: Checkout
+        uses: actions/checkout@v5
+        
+      - name: Set up JDK 21
+        uses: actions/setup-java@v5
+        with:
+          distribution: 'temurin'
+          java-version: 21
+          
+      - name: Setup Android SDK Tools
+        uses: android-actions/setup-android@v4
+        with:
+          packages: ''
+          log-accepted-android-sdk-licenses: false
+          
+      - name: Check Retrace Accessibility
+        run: |
+          echo "=== 检查 Retrace 可用性 ==="
+          if command -v retrace &> /dev/null; then
+              retrace --help
+              echo "retrace 可用!"
+          else
+              echo "错误:未检测到 retrace"
+              exit 1
+          fi
+      
+      - name: Save Log
+        env:
+            LOG_BASE64: ${{ inputs.log }}
+        run: |
+          mkdir -p logs
+          
+          if ! echo "$LOG_BASE64" | base64 --decode > logs/obfuscated.txt; then
+            echo "日志 Base64 解码失败"
+            exit 1
+          fi
+          
+      - name: Download Mapping File
+        env:
+          VERSION: ${{ inputs.version }}
+        run: |
+          mkdir -p logs
+          echo "获取版本:"
+          echo "$VERSION"
+          
+          gh release download "$VERSION" \
+            --repo "HapeLee/legado-with-MD3" \
+            --pattern "*mapping*.txt" \
+            --dir logs
+            
+          if [ ! -f logs/mapping.txt ]; then
+            FILE=$(find logs -name "*.txt" | head -n 1)
+            if [ -n "$FILE" ]; then
+              mv "$FILE" logs/mapping.txt
+            fi
+          fi
+          
+          if [ ! -f logs/mapping.txt ]; then
+            echo "未找到 mapping 文件"
+            exit 1
+          fi
+          
+          echo "Mapping:"
+          ls -lh logs/mapping.txt
+
+      - name: Run Retrace
+
+        run: |
+          retrace logs/mapping.txt logs/obfuscated.txt 2>&1 | tee logs/recovered.txt
+
+      - name: Upload Result
+
+        uses: actions/upload-artifact@v7
+
+        with:
+          archive: false
+          path:
+            logs/recovered.txt