AppCleanerAndUninstallerCrack/scripts/publish.sh

140 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
CUR_PATH=$(
cd $(dirname "$0");
pwd
)
ROOT_PATH=$(
cd "${CUR_PATH}/../";
pwd
)
TEMP_PATH="${ROOT_PATH}/tmp"
PUBLISH_PATH="${ROOT_PATH}/publish"
APP_VERSION="8.0.2.1895"
DMG_SHA256SUM="f595aac413b19dc4bd35ac6dcdd2c0d3aa94dbf0387f92242aa51409b58607ca"
DMG_DOWNLOAD_URL="https://nektony.com/download/app-cleaner-uninstaller/app-cleaner-uninstaller.dmg"
DMG_FILE="${TEMP_PATH}/download/app-cleaner-uninstaller_${APP_VERSION}.dmg"
PUBLISH_FILE="${PUBLISH_PATH}/app-cleaner-uninstaller_${APP_VERSION}_Crack.dmg"
CODESIGN_CERT=-
if [ -n "$(security find-identity -v -p codesigning | grep 73B34EBEE504D5CEE35B113A22CEBFD381A21033)" ]; then
CODESIGN_CERT=73B34EBEE504D5CEE35B113A22CEBFD381A21033
fi
PACK_DIR="${TEMP_PATH}/dmg_files"
function sign_cmd() {
NAME=$(basename $1)
if [ -f "${ROOT_PATH}/entitlements/${NAME}.entitlements" ]; then
codesign -f -s "${CODESIGN_CERT}" --timestamp=none --all-architectures --deep \
--entitlements "${ROOT_PATH}/entitlements/${NAME}.entitlements" \
"$1"
else
codesign -f -s "${CODESIGN_CERT}" --timestamp=none --all-architectures --deep "$1"
fi
}
function ensure_download_dmg() {
if [ ! -f "${DMG_FILE}" ]; then
echo "[*] Download ${DMG_DOWNLOAD_URL}"
mkdir -p $(dirname "${DMG_FILE}")
curl -L --progress-bar -o "${DMG_FILE}" "${DMG_DOWNLOAD_URL}"
fi
if [ -f "${DMG_FILE}" ]; then
echo "[*] Check hash for \"${DMG_FILE}\""
FILE_HASH=$(shasum -a 256 -b "${DMG_FILE}" | awk '{print $1}')
if [ ${FILE_HASH} != ${DMG_SHA256SUM} ]; then
echo "[-] ${FILE_HASH} != ${DMG_SHA256SUM}"
echo "[*] Delete \"${DMG_FILE}\""
rm -f "${DMG_FILE}"
fi
fi
}
function copy_files() {
echo "[*] Copy files"
if [ -d "${PACK_DIR}" ]; then
rm -rf "${PACK_DIR}" > /dev/null
fi
mkdir -p "${PACK_DIR}" > /dev/null
MOUNT_DIR=$(hdiutil attach -readonly -noverify -noautofsck -noautoopen "${DMG_FILE}" | grep -E --color=never '/Volumes/' | cut -d'/' -f 4-)
cp -R -X "/${MOUNT_DIR}/App Cleaner 8.app" "${PACK_DIR}/" > /dev/null
hdiutil detach "/${MOUNT_DIR}"
rm -f "${PACK_DIR}/App Cleaner 8.app/Contents/embedded.provisionprofile" > /dev/null
chflags -R 0 "${PACK_DIR}" > /dev/null
xattr -cr "${PACK_DIR}" > /dev/null
}
function apply_crack() {
echo "[*] Apply patch"
SRC="${ROOT_PATH}/crack/App Cleaner 8"
DST="${PACK_DIR}/App Cleaner 8.app/Contents/MacOS/App Cleaner 8"
cp -f "${SRC}" "${DST}" > /dev/null
chflags -R 0 "${DST}"
chmod 755 "${DST}"
}
function sign_other() {
oldIFS=$IFS
IFS=$'\n'
for name in $(ls "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/")
do
if [ -f "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/${name}/Contents/embedded.provisionprofile" ]; then
rm -f "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/${name}/Contents/embedded.provisionprofile" > /dev/null
fi
sign_cmd "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/${name}"
done
IFS=oldIFS
}
function sign_app() {
echo "[*] Sign App"
sign_other
if [ -f "${PACK_DIR}/App Cleaner 8.app/Contents/embedded.provisionprofile" ]; then
rm -f "${PACK_DIR}/App Cleaner 8.app/Contents/embedded.provisionprofile" > /dev/null
fi
sign_cmd "${PACK_DIR}/App Cleaner 8.app"
}
function create_dmg() {
echo "[*] Create dmg ${PUBLISH_FILE}"
mkdir -p "${PUBLISH_PATH}"
if [ -f "${PUBLISH_FILE}" ]; then
rm -f "${PUBLISH_FILE}" > /dev/null
fi
create-dmg \
--volname "App Cleaner & Uninstaller" \
--background "${ROOT_PATH}/assets/bg.png" \
--window-pos 0 0 \
--window-size 550 400 \
--text-size 12 \
--icon-size 128 \
--icon "App Cleaner 8.app" 135 230 \
--app-drop-link 416 230\
--codesign "${CODESIGN_CERT}" \
"${PUBLISH_FILE}" \
"${PACK_DIR}/"
}
function publish_crack_dmg() {
ensure_download_dmg
copy_files
apply_crack
sign_app
create_dmg
}
publish_crack_dmg