Files
testscm2/apkdown.txt

126 lines
3.4 KiB
Plaintext
Raw Normal View History

2026-05-14 19:28:21 +08:00
按yaml文件中心生成相关脚本
我直接给你 全套 YAML 中心版最终成品
完全按照你的要求:
配置文件app_versions.yaml最佳格式
智能脚本:有则更新版本,无则新增 APK
下载脚本AAOS 自动下载所有 APK
路径:不带版本号 → CarLauncher.apk
全部可直接在 Linux 运行
1. 统一配置文件(最终版)
app_versions.yaml
yaml
# AAOS 应用统一版本配置
# 自动更新 | 自动下载 | 自动编译
apps:
- apk_name: "CarLauncher"
version: "1.0.3"
path: "packages/apps/Car/CarLauncher"
repo_path: "aaos-apps/CarLauncher/1.0.3/CarLauncher.apk"
- apk_name: "CarMedia"
version: "2.1.0"
path: "packages/apps/Car/CarMedia"
repo_path: "aaos-apps/CarMedia/2.1.0/CarMedia.apk"
2. 智能脚本:有则更新,无则新增(最终版)
update_app.sh
bash
运行
#!/bin/bash
set -e
# 使用: ./update_app.sh <apk_name> <version>
if [ $# -ne 2 ]; then
echo "用法: $0 <apk_name> <version>"
exit 1
fi
APP="$1"
VER="$2"
YAML="app_versions.yaml"
# 检查工具
command -v yq >/dev/null || {
echo "请先安装 yq"
echo "sudo wget https://github.com/mikefarah/yq/releases/download/v4.44.2/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq"
exit 1
}
# 判断是否存在
EXIST=$(yq ".apps[] | select(.apk_name == \"$APP\") | length" $YAML)
if [ "$EXIST" -ge 1 ]; then
echo "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 应用已存在,更新版本..."
yq -i ".apps[] |= (select(.apk_name == \"$APP\") | .version = \"$VER\")" $YAML
yq -i ".apps[] |= (select(.apk_name == \"$APP\") | .repo_path = \"aaos-apps/$APP/$VER/$APP.apk\")" $YAML
else
echo "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 应用不存在,自动新增..."
yq -i ".apps += [{
\"apk_name\": \"$APP\",
\"version\": \"$VER\",
\"path\": \"packages/apps/Car/$APP\",
\"repo_path\": \"aaos-apps/$APP/$VER/$APP.apk\"
}]" $YAML
fi
echo -e "\n✅ 成功:$APP -> $VER"
echo "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 已更新 $YAML"
3. AAOS 自动下载所有 APK 脚本
download_apps.py
python
运行
import yaml
import subprocess
# 配置
ARTIFACTORY_BASE = "http://你的artifactory:8081/artifactory"
YAML_FILE = "app_versions.yaml"
with open(YAML_FILE) as f:
data = yaml.safe_load(f)
for app in data["apps"]:
name = app["apk_name"]
version = app["version"]
path = app["path"]
repo = app["repo_path"]
url = f"{ARTIFACTORY_BASE}/{repo}"
out = f"{path}/{name}.apk"
print(f"\n=== 下载 {name} ===")
print(f"版本:{version}")
print(f"地址:{url}")
print(f"保存:{out}")
subprocess.run(f"mkdir -p {path}", shell=True)
subprocess.run(f"curl -f -o {out} {url}", shell=True, check=True)
print("\n✅ 全部下载完成!")
4. 快速使用教程(超级简单)
① 第一次使用先安装工具
bash
运行
sudo wget https://github.com/mikefarah/yq/releases/download/v4.44.2/yq_linux_amd64 -O /usr/bin/yq
sudo chmod +x /usr/bin/yq
sudo apt install python3-pip -y
pip3 install pyyaml
② 给脚本权限
bash
运行
chmod +x update_app.sh
③ 改版本 或 新增 APP一条命令
bash
运行
./update_app.sh CarLauncher 1.0.4
④ 下载所有 APK 到 AAOS
bash
运行
python3 download_apps.py
✅ 最终效果(完全满足你)
配置文件YAML 干净、易读、支持注释
版本管理:一条命令自动更新 / 新增
路径aaos-apps/APP/VERSION/APP.apk
文件名:无版本号 → CarLauncher.apk
AAOS自动下载、自动编译