retrace-log.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. name: Retrace Mapped Log
  2. on:
  3. workflow_dispatch:
  4. inputs:
  5. version:
  6. description: "APP版本,例如 3.26.15 或 3.26.16-beta.9"
  7. required: true
  8. type: string
  9. log:
  10. description: "Base64 编码后的日志内容"
  11. required: true
  12. type: string
  13. permissions:
  14. contents: read
  15. jobs:
  16. retrace:
  17. name: Retrace Log
  18. runs-on: ubuntu-latest
  19. steps:
  20. - name: Checkout
  21. uses: actions/checkout@v5
  22. - name: Set up JDK 21
  23. uses: actions/setup-java@v5
  24. with:
  25. distribution: 'temurin'
  26. java-version: 21
  27. - name: Setup Android SDK Tools
  28. uses: android-actions/setup-android@v4
  29. with:
  30. packages: ''
  31. log-accepted-android-sdk-licenses: false
  32. - name: Check Retrace Accessibility
  33. run: |
  34. echo "=== 检查 Retrace 可用性 ==="
  35. if command -v retrace &> /dev/null; then
  36. retrace --help
  37. echo "retrace 可用!"
  38. else
  39. echo "错误:未检测到 retrace"
  40. exit 1
  41. fi
  42. - name: Save Log
  43. env:
  44. LOG_BASE64: ${{ inputs.log }}
  45. run: |
  46. mkdir -p logs
  47. if ! echo "$LOG_BASE64" | base64 --decode > logs/obfuscated.txt; then
  48. echo "日志 Base64 解码失败"
  49. exit 1
  50. fi
  51. - name: Download Mapping File
  52. env:
  53. VERSION: ${{ inputs.version }}
  54. run: |
  55. mkdir -p logs
  56. echo "获取版本:"
  57. echo "$VERSION"
  58. gh release download "$VERSION" \
  59. --repo "HapeLee/legado-with-MD3" \
  60. --pattern "*mapping*.txt" \
  61. --dir logs
  62. if [ ! -f logs/mapping.txt ]; then
  63. FILE=$(find logs -name "*.txt" | head -n 1)
  64. if [ -n "$FILE" ]; then
  65. mv "$FILE" logs/mapping.txt
  66. fi
  67. fi
  68. if [ ! -f logs/mapping.txt ]; then
  69. echo "未找到 mapping 文件"
  70. exit 1
  71. fi
  72. echo "Mapping:"
  73. ls -lh logs/mapping.txt
  74. - name: Run Retrace
  75. run: |
  76. retrace logs/mapping.txt logs/obfuscated.txt 2>&1 | tee logs/recovered.txt
  77. - name: Upload Result
  78. uses: actions/upload-artifact@v7
  79. with:
  80. archive: false
  81. path:
  82. logs/recovered.txt