#!/bin/bash reset echo "Copyright (c) 2019-2021 The Spark Project" if [ -x "/usr/bin/deepin-deb-installer" ] ; then echo "深度软件包安装器已安装,开始检测证书" else echo "未安装深度软件包安装器,拒绝执行" echo "UOS需要深度软件包安装器来认证签名" echo "如果你用的是UOS,你能卸载这玩意说明你已经开了开发者模式......悄悄告诉你,放屁是不用脱裤子的!" echo "如果你用的不是统信系发行版......所以你为什么要打开这个脚本?" exit 1 fi if [ -f "/usr/share/ca-certificates/deepin/private/priv.crt" ] ; then echo "检测到已经生成过证书,直接跳过询问" else until [ -f "/usr/bin/cert-tool" ] ; do #强制未安装证书工具的不通过 echo "该工具的原理是利用UOS的自签名安装包免开发者的特性,需要您的UOS ID账号和密码,请在使用工具前确保在应用商店中已安装过“证书工具”这个应用" echo "如果没有安装,则无法使用。请确认安装后再进行下一步操作" echo "如果你确认已经安装了该应用,请按回车" read renyijian #检测是否在说谎签名文件 if [ -f "/usr/bin/cert-tool" ] ; then echo "成功检测到cert-tool存在,开始检测证书\n" else echo "没有检测到该应用,请您再次确认“证书工具”已经安装!" sleep 3 clear fi done until [ -f "/usr/share/ca-certificates/deepin/private/priv.crt" ] ; do echo "没有检测到证书,准备调用证书工具生成证书,请输入您的UOS账号/密码。本脚本不会上传任何信息" echo "请在此行输入您的UOS账号用户名/电话号/邮箱" read account echo "请在此行输入您的UOS账号密码" read passwd echo "即将安装证书,请在弹出的窗口安装" cert-tool -username="$account" -password="$passwd" done echo "检测到已经生成过证书,准备签名" fi #这个if是判断是否已经有证书 unset account unset passwd unset renyijian mkdir -p /tmp/spark-store-appremover cd /tmp/spark-store-appremover #工作目录应当为 /tmp/spark-store-appremover while [ ! $pkgname ] ; do if [ ! $1 ] ; then echo "没有检测到包名,以交互式模式运行" echo "请输入你要卸载的软件包名,输入结束后回车" read pkgname else echo "检测到包名,跳过获取" pkgname="$1" echo "读取到的包名为:$pkgname" fi if [ ! $pkgname ] ; then echo "没有检测到包名,请重新输入!" sleep 3 clear else echo "包名读取成功,进入下一步" fi done #while [ ! $version ] ; do # if [ ! $2 ] ; then # echo "没有检测到版本号,以交互式模式运行" # echo "请输入你要卸载的软件包版本号,输入结束后回车" # read version # else # echo "检测到包名,跳过获取" # version="$2" # echo "读取到的版本号为:$version" # fi # # if [ ! $version ] ; then # echo "没有检测到版本号,请重新输入!" # sleep 3 # clear # else # echo "版本号读取成功,进入下一步" # fi #done #发现版本号不一定一致也可以卸载 version="1.0" echo "开始生成deb包" echo "输出的control文件为" echo "" echo "Package: $pkgname" echo "Version: $version" echo "Depends: " echo "Maintainer: spark-store" echo "Description: 这是一个假软件包,请点击卸载" echo "Architecture: $(arch)" echo "-----------------------开始生成-----------------------" workdir=$(pwd) echo "工作目录为$workdir" mkdir DEBIAN cd DEBIAN touch control echo "Package: $pkgname" >> ./control echo "Version: $version" >> ./control echo "Depends: " >> ./control echo "Maintainer: spark-store" >> ./control echo "Description: 这是一个假软件包,请点击卸载" >> ./control echo "Architecture: $(arch)" >> ./control echo "-----------------------开始打包-----------------------" cd .. workdir=$(pwd) echo "回退到工作目录,当前目录位于$workdir" fakeroot dpkg -b . ./uninstall.deb echo "-----------------------打包结束-----------------------" cd /tmp echo "-----------------------开始签名-----------------------" deepin-elf-sign-deb "/tmp/spark-store-appremover/uninstall.deb" echo "-----------------------签名结束-----------------------" echo "-----------------启动深度软件包管理器-------------------" deepin-deb-installer "/tmp/signed_deb/uninstall.deb" file_name=$(basename "/tmp/signed_deb/uninstall.deb") echo "---------------以上为深度软件包管理器输出----------------" echo "删除临时包" rm "/tmp/signed_deb/$file_name" rm -r /tmp/spark-store-appremover