From 281606dab744efe6ba5c643d512201ead7b12d06 Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Wed, 3 Sep 2025 21:59:16 +0200 Subject: [PATCH] Initial commit --- .SRCINFO | 22 ++++++++++++++++ .gitignore | 17 +++++++++++++ .nvchecker.toml | 4 +++ LICENSE | 12 +++++++++ LICENSES/0BSD.txt | 1 + PKGBUILD | 62 ++++++++++++++++++++++++++++++++++++++++++++ REUSE.toml | 23 +++++++++++++++++ chroot-build | 65 +++++++++++++++++++++++++++++++++++++++++++++++ uad-ng.desktop | 10 ++++++++ 9 files changed, 216 insertions(+) create mode 100644 .SRCINFO create mode 100644 .gitignore create mode 100644 .nvchecker.toml create mode 100644 LICENSE create mode 120000 LICENSES/0BSD.txt create mode 100644 PKGBUILD create mode 100644 REUSE.toml create mode 100755 chroot-build create mode 100755 uad-ng.desktop diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..c8e3ce3 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = universal-android-debloater + pkgdesc = Cross-platform GUI written in Rust using ADB to debloat non-rooted Android devices + pkgver = 1.1.2 + pkgrel = 2 + url = https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation + arch = x86_64 + license = GPL-3.0-or-later + makedepends = cargo + makedepends = clang + makedepends = cmake + makedepends = git + makedepends = mold + depends = android-tools + depends = gcc-libs + depends = glibc + conflicts = universal-android-debloater-opengl + source = universal-android-debloater-1.1.2::git+https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation.git#tag=v1.1.2 + source = uad-ng.desktop + b2sums = 6c5adb052fcbfbafad0752d02fc284abc0d4a6bc8332a98aeba9de150c75b0bbfe1e06130d5f3ea9c17bc4cb589b3b54f109f2d61f09f70e30938651c46c3f3a + b2sums = 4e1f323437031dffe0eebf8463efa81ab75d37f5010cab7a07cf6edb271cb6ba141b812c71373011373a2160008bd3625a92236ecc190c4f0eee30a71ddb9cfb + +pkgname = universal-android-debloater diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5b3b55 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Ignore everything +* + +# But not these files... +!.gitignore +!PKGBUILD +!.SRCINFO +!LICENSE +!chroot-build +!.nvchecker.toml +!/keys +!/keys/pgp +!/keys/pgp/*.asc +!/LICENSES +!/LICENSES/*.txt +!REUSE.toml +!uad-ng.desktop diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..bbf6836 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[universal-android-debloater] +source = "git" +git = "https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation.git" +prefix = "v" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b87c5e4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +Copyright Arch Linux Contributors + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt new file mode 120000 index 0000000..ea5b606 --- /dev/null +++ b/LICENSES/0BSD.txt @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..7cf2aa3 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: Christian Schendel +# Contributor: Mark Wagie +pkgname=universal-android-debloater +pkgver=1.1.2 +pkgrel=2 +pkgdesc="Cross-platform GUI written in Rust using ADB to debloat non-rooted Android devices" +arch=('x86_64') +url="https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation" +license=( + GPL-3.0-or-later +) +depends=( + android-tools + gcc-libs + glibc +) +makedepends=( + cargo + clang + cmake + git + mold +) +source=( + "$pkgname-$pkgver::git+$url.git#tag=v$pkgver" + uad-ng.desktop +) +conflicts=( + universal-android-debloater-opengl +) +b2sums=('6c5adb052fcbfbafad0752d02fc284abc0d4a6bc8332a98aeba9de150c75b0bbfe1e06130d5f3ea9c17bc4cb589b3b54f109f2d61f09f70e30938651c46c3f3a' + '4e1f323437031dffe0eebf8463efa81ab75d37f5010cab7a07cf6edb271cb6ba141b812c71373011373a2160008bd3625a92236ecc190c4f0eee30a71ddb9cfb') + +prepare() { + cd "$pkgname-$pkgver" + export RUSTUP_TOOLCHAIN=stable + cargo fetch \ + --locked \ + --target "$(rustc -vV | sed -n 's/host: //p')" +} + +build() { + cd "$pkgname-$pkgver" + CFLAGS+=" -ffat-lto-objects" + export RUSTUP_TOOLCHAIN=stable + export CARGO_TARGET_DIR=target + export CARGO_PROFILE_RELEASE_STRIP=false + cargo build \ + --frozen \ + --release \ + --no-default-features \ + --features wgpu,no-self-update +} + +package() { + cd "$pkgname-$pkgver" + install -Dm0755 -t "$pkgdir/usr/bin/" target/release/uad-ng + install -Dm0644 resources/assets/logo-dark.png "$pkgdir/usr/share/pixmaps/uad-ng.png" + install -Dm0644 -t "$pkgdir/usr/share/applications/" "$srcdir/uad-ng.desktop" +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..e45b4ff --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,23 @@ +version = 1 + +[[annotations]] +path = [ + "PKGBUILD", + "README.md", + "keys/**", + ".SRCINFO", + ".nvchecker.toml", + ".gitignore", + "*.install", + "*.sysusers", + "*.tmpfiles", + "*.logrotate", + "*.pam", + "*.service", + "*.socket", + "*.timer", + "*.desktop", + "*.hook", +] +SPDX-FileCopyrightText = "Arch Linux contributors" +SPDX-License-Identifier = "0BSD" diff --git a/chroot-build b/chroot-build new file mode 100755 index 0000000..f69cac8 --- /dev/null +++ b/chroot-build @@ -0,0 +1,65 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: Christian Schendel +# SPDX-License-Identifier: 0BSD + +set -euo pipefail +use_tmpfs=true +CHROOT="/tmp/mkarchroot" + +check_available_ram() { + if [ "$(awk '/^MemAvailable:/ { print $2; }' /proc/meminfo)" -lt 50000 ]; then + use_tmpfs=false + fi +} + +create_chroot_directory() { + if [ $use_tmpfs ]; then + sudo mount --mkdir -t tmpfs -o defaults,size=20G tmpfs $CHROOT + else + sudo mkdir -p "$CHROOT" + fi +} + +create_chroot_environment() { + if [[ ! -d "$CHROOT/root" ]]; then + mkarchroot -M ~/.config/pacman/makepkg.conf "$CHROOT/root" base-devel + fi +} + +build_package(){ + arch-nspawn "$CHROOT/root" pacman -Syu + if makechrootpkg -c -r "$CHROOT" -- -Asf . ; then + makepkg --printsrcinfo >.SRCINFO + else + delete_chroot_environment && echo -e "\n\e[1;31m==> BUILD FAILED: \e[1;37m$CHROOT removed\e[0m " && exit 1 + fi +} + +sign_package(){ + PACKAGE="$(makepkg --packagelist)" + gpg --use-agent --output "$PACKAGE.sig" --detach-sign "$PACKAGE" +} + +delete_chroot_environment() { + if [ "$(stat -f --format=%T "$CHROOT")" == "btrfs" ]; then + { + sudo btrfs subvolume delete "$CHROOT/root/var/lib/portables" + sudo btrfs subvolume delete "$CHROOT/root/var/lib/machines" + sudo btrfs subvolume delete "$CHROOT/root" + sudo rm -Rf $CHROOT + } >>/dev/null 2>&1 + elif [ "$(stat -f --format=%T "$CHROOT")" == "tmpfs" ]; then + sudo umount -f $CHROOT + fi + sudo rm -Rf $CHROOT +} + +check_available_ram +create_chroot_directory +create_chroot_environment +build_package +sign_package +delete_chroot_environment + +# vim: set ts=4 sw=4 et: diff --git a/uad-ng.desktop b/uad-ng.desktop new file mode 100755 index 0000000..e7cce3d --- /dev/null +++ b/uad-ng.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Icon=uad-ng +Name=Universal Android Debloater +Exec=uad-ng +Terminal=false +Hidden=false +Categories=Development; Utility +Comment=Remove pre-installed apps on your Android device +Keywords=UAD