generated from dellevin/template
Compare commits
2 Commits
8a0e5e4bd3
...
5d41b7e922
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d41b7e922 | ||
|
|
f896ab7bbe |
51
.github/workflows/android-release.yml
vendored
51
.github/workflows/android-release.yml
vendored
@@ -15,7 +15,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-apks:
|
||||
name: 构建 Debug 与 Release APK
|
||||
name: 构建 Debug APK
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 40
|
||||
|
||||
@@ -43,62 +43,25 @@ jobs:
|
||||
- name: 安装 Android SDK 37
|
||||
run: sdkmanager --channel=3 "platforms;android-37.0"
|
||||
|
||||
- name: 还原发布证书
|
||||
env:
|
||||
ETA_RELEASE_KEYSTORE_BASE64: ${{ secrets.ETA_RELEASE_KEYSTORE_BASE64 }}
|
||||
ETA_RELEASE_STORE_PASSWORD: ${{ secrets.ETA_RELEASE_STORE_PASSWORD }}
|
||||
ETA_RELEASE_KEY_ALIAS: ${{ secrets.ETA_RELEASE_KEY_ALIAS }}
|
||||
ETA_RELEASE_KEY_PASSWORD: ${{ secrets.ETA_RELEASE_KEY_PASSWORD }}
|
||||
run: |
|
||||
if [[ -z "$ETA_RELEASE_KEYSTORE_BASE64" ||
|
||||
-z "$ETA_RELEASE_STORE_PASSWORD" ||
|
||||
-z "$ETA_RELEASE_KEY_ALIAS" ||
|
||||
-z "$ETA_RELEASE_KEY_PASSWORD" ]]; then
|
||||
echo "::error::缺少 Release 签名 Secrets,请检查仓库的 Actions Secrets。"
|
||||
exit 1
|
||||
fi
|
||||
printf '%s' "$ETA_RELEASE_KEYSTORE_BASE64" \
|
||||
| base64 --decode \
|
||||
> "$RUNNER_TEMP/eta-release.jks"
|
||||
|
||||
- name: 构建 Debug 与 Release APK
|
||||
env:
|
||||
ETA_RELEASE_STORE_FILE: ${{ runner.temp }}/eta-release.jks
|
||||
ETA_RELEASE_STORE_PASSWORD: ${{ secrets.ETA_RELEASE_STORE_PASSWORD }}
|
||||
ETA_RELEASE_KEY_ALIAS: ${{ secrets.ETA_RELEASE_KEY_ALIAS }}
|
||||
ETA_RELEASE_KEY_PASSWORD: ${{ secrets.ETA_RELEASE_KEY_PASSWORD }}
|
||||
- name: 构建 Debug APK
|
||||
run: >-
|
||||
./gradlew --no-daemon --no-configuration-cache
|
||||
:app:assembleDebug :app:assembleRelease
|
||||
:app:assembleDebug
|
||||
|
||||
- name: 验证并整理 APK
|
||||
id: apk
|
||||
run: |
|
||||
debug_apk="app/build/outputs/apk/debug/app-debug.apk"
|
||||
release_apk="app/build/outputs/apk/release/app-release.apk"
|
||||
output_dir="$RUNNER_TEMP/apks"
|
||||
apksigner_path="$(find "$ANDROID_HOME/build-tools" \
|
||||
-type f -name apksigner | sort -V | tail -n 1)"
|
||||
|
||||
if [[ ! -f "$debug_apk" ]]; then
|
||||
echo "::error::未找到 Debug APK。"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -f "$release_apk" ]]; then
|
||||
echo "::error::未找到 Release APK。"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "$apksigner_path" ]]; then
|
||||
echo "::error::未找到 apksigner。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$apksigner_path" verify "$release_apk"
|
||||
mkdir -p "$output_dir"
|
||||
cp "$debug_apk" "$output_dir/app-debug.apk"
|
||||
cp "$release_apk" "$output_dir/app-release.apk"
|
||||
echo "debug_path=$output_dir/app-debug.apk" >> "$GITHUB_OUTPUT"
|
||||
echo "release_path=$output_dir/app-release.apk" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: 上传 Debug APK
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
||||
@@ -107,11 +70,3 @@ jobs:
|
||||
archive: false
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
- name: 上传 Release APK
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
||||
with:
|
||||
path: ${{ steps.apk.outputs.release_path }}
|
||||
archive: false
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
$env:JAVA_HOME = "D:/Environment/Java/java25" && .\gradlew.bat assembleDebug
|
||||
```
|
||||
|
||||
|
||||
|
||||
**面向 Android 的第三方系统级 AI Agent**
|
||||
|
||||
Eta 借助 Root 与 LSPosed 越过 App 沙盒,直接进入系统底层:Hook 系统组件,接管电源键与厂商助手入口,读取原厂与第三方应用的私有数据。这些接近原厂、又比原厂更自由的能力,全部开放给你自己接入的模型(ChatGPT、DeepSeek、Kimi 等,自带 API Key——BYOK):
|
||||
|
||||
Reference in New Issue
Block a user