1.1.3 支持 APM 应用提权

This commit is contained in:
2025-11-10 11:35:35 +08:00
parent 06364229cf
commit 60189d4c2d
6 changed files with 240 additions and 32 deletions

View File

@@ -240,10 +240,11 @@ find "$EXTRACT_DIR" -name "*.desktop" | while read -r desktop_file; do
sed -i 's/^Exec=\(.*\)$/Exec=apm run '"$NEW_PKGNAME"' \1/' "$desktop_file"
fi
# 处理TryExec行
if grep -q '^TryExec=' "$desktop_file"; then
sed -i 's/^TryExec=\(.*\)$/TryExec=apm run '"$NEW_PKGNAME"' \1/' "$desktop_file"
fi
# 处理TryExec行 - 直接删除
if grep -q '^TryExec=' "$desktop_file"; then
sed -i '/^TryExec=/d' "$desktop_file"
log.info "已删除TryExec行"
fi
# 处理Icon路径
icon_line=$(grep "^Icon=" "$desktop_file")
@@ -400,7 +401,7 @@ EOF
OUTPUT_DEB="${NEW_PKGNAME}_${NEW_VERSION}_${ORIG_ARCH}.deb"
# 打包
fakeroot dpkg-deb --build "$PKG_BUILD_DIR" "$OUTPUT_DEB"
fakeroot dpkg-deb -Z xz --build "$PKG_BUILD_DIR" "$OUTPUT_DEB"
log.info "转换完成!"
log.info "生成的APM包: $OUTPUT_DEB"

View File

@@ -1,5 +1,5 @@
#!/bin/bash
VERSION=1.1.2
VERSION=1.1.3
# 获取脚本名称用于帮助信息
SCRIPT_NAME=$(basename "$0")
PATH_PREFIX=/var/lib/apm/apm/files/ace-env/
@@ -23,6 +23,7 @@ Commands:
remove 卸载软件包
run <package> 运行指定软件包的可执行文件
sandbox-run <package> 运行指定软件包的可执行文件(主目录沙箱化)
bwrap-run <package> 运行指定软件包的可执行文件使用特殊的挂载参数以支持bwrap
update 更新软件包信息
hold 锁定软件包版本
@@ -54,11 +55,10 @@ apm_exec(){
local lowerdirs=()
local current_dir="${PATH_PREFIX}/var/lib/apm/${coredir}" # 当前目录开始
local next_info_file=""
if [[ "$APM_USE_SANDBOX" = "1" ]];then
APM_RUN_EXEC=/var/lib/apm/apm/files/ace-run-sandbox
else
# 使用统一的 ace-run 脚本
APM_RUN_EXEC=/var/lib/apm/apm/files/ace-run
fi
while : ; do
# 构建info文件的路径
next_info_file="${current_dir}/info"
@@ -241,7 +241,7 @@ case "$1" in
apm-nvidia-toggle
amber-pm-gxde-desktop-fix
;;
download|search|policy|list|update|clean|show)
download|search|policy|list|update|clean|show|depends|rdepends|changelog|moo)
command=$1
shift
amber-pm-debug aptss "$command" "$@"
@@ -325,6 +325,12 @@ case "$1" in
shift
$0 run "$@"
;;
bwrap-run)
# 运行包命令使用特殊的挂载参数以支持bwrap
export APM_USE_BWRAP=1
shift
$0 run "$@"
;;
debug)
shift
debug_info $@
@@ -360,4 +366,4 @@ case "$1" in
*)
show_help
;;
esac
esac

View File

@@ -45,6 +45,7 @@ _apm()
"upgrade" "full-upgrade" "dist-upgrade"
"run"
"sandbox-run"
"bwrap-run"
"help"
"source" "build-dep"
"clean" "autoclean"
@@ -239,7 +240,7 @@ fi
command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) )
return 0
;;
run|sandbox-run)
run|sandbox-run|bwrap-run)
COMPREPLY=( $( compgen -W "$(apm_run_compgen)" "$cur" ) )
return 0
;;