update: flatpak extractor

This commit is contained in:
2025-04-02 11:25:42 +08:00
parent 4f42ebb48b
commit e1b9ce88be
7 changed files with 77 additions and 5 deletions

View File

@@ -1,9 +1,9 @@
Package: uos-packaging-tools
Version: 1.3.2
Version: 1.4.0
Architecture: all
Maintainer: shenmo<shenmo@spark-app.store>
Installed-Size: 10
Depends: libnotify-bin,fakeroot,zstd,policykit-1 | polkit,zenity
Depends: libnotify-bin,fakeroot,zstd,policykit-1 | polkit,zenity,bash,ostree
Section: graphics
Priority: optional
Description: uos-packaging-tools

View File

@@ -0,0 +1,60 @@
#!/bin/bash
# Flatpak Extractor Script
# Usage: ./flatpak-extractor.sh <flatpak-file>
set -e
# Check if filename is provided
if [ $# -eq 0 ]; then
echo "Error: No Flatpak file specified"
echo "Usage: $0 <flatpak-file>"
exit 1
fi
FLATPAK_FILE="$(realpath $1)"
# Check if file exists
if [ ! -f "$FLATPAK_FILE" ]; then
echo "Error: File '$FLATPAK_FILE' not found"
exit 1
fi
# Create output directory name from flatpak filename (remove .flatpak extension)
OUTPUT_DIR="${FLATPAK_FILE%.flatpak}"
if [ "$OUTPUT_DIR" = "$FLATPAK_FILE" ]; then
# File doesn't have .flatpak extension, append _extracted
OUTPUT_DIR="${FLATPAK_FILE}_extracted"
fi
# Create temporary directory for ostree repo
mkdir -p "${FLATPAK_FILE}_tmp"
REPO_DIR="${FLATPAK_FILE}_tmp"
trap 'rm -rf "$REPO_DIR"' EXIT
echo "Extracting $FLATPAK_FILE to $OUTPUT_DIR..."
# Initialize ostree repo
pushd "$REPO_DIR"
echo "Initializing ostree repository..."
ostree init --repo="repo" --mode=bare-user
# Apply static delta
echo "Applying static delta..."
ostree static-delta apply-offline --repo="repo" "$FLATPAK_FILE"
# Checkout the files
echo "Checking out files..."
mkdir -p "$OUTPUT_DIR"
ostree checkout --repo="repo" -U $(basename $(echo repo/objects/*/*.commit | cut -d/ -f3- --output-delimiter= ) .commit) "outdir"
mv -v outdir/* $OUTPUT_DIR
popd
notify-send $(basename $1)拆包完成 -i /usr/share/icons/uos-packaging-tools.png
echo "Extraction complete! Files are in: $OUTPUT_DIR"

View File

@@ -0,0 +1 @@
../../opt/uos-packaging-tools/flap-extractor

View File

@@ -0,0 +1,11 @@
[Desktop Entry]
Categories=Development;
Encoding=UTF-8
Exec=/opt/uos-packaging-tools/flap-extractor %F
Icon=uos-packaging-tools
MimeType=application/vnd.flatpak,application/vnd.xdgapp;application/octet-stream;
Name=解包 Flatpak
NoDisplay=true
StartupWMClass=解包Flap
Terminal=false
Type=Application

View File

@@ -5,7 +5,7 @@ Exec=/opt/uos-packaging-tools/just-X-me %F
Icon=uos-packaging-tools
MimeType=application/vnd.debian.binary-package;application/x-deb;
Name=直接解包
NoDisplay=false
NoDisplay=true
StartupWMClass=直接解包
Terminal=false
Type=Application

View File

@@ -9,4 +9,4 @@ Name[zh_CN]=安装
StartupWMClass=Install
Terminal=false
Type=Application
NoDisplay=false
NoDisplay=true

View File

@@ -8,4 +8,4 @@ Name=重打包
StartupWMClass=重打包
Terminal=false
Type=Application
NoDisplay=false
NoDisplay=true