CleanMyMacXCrack/scripts/publish.sh

148 lines
3.9 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="41201.0.2211091011"
#APP_VERSION="4.12.1"
DMG_SHA256SUM="3867b877b3bda4e9c41ceca69b81abc3f992cb5cded7c07312f638b33ee70842"
DMG_DOWNLOAD_URL="https://dl.devmate.com/com.macpaw.CleanMyMac4/CleanMyMacX.dmg"
DMG_FILE="${TEMP_PATH}/download/CleanMyMacX_${APP_VERSION}.dmg"
PUBLISH_FILE="${PUBLISH_PATH}/CleanMyMacX_${APP_VERSION}_Crack.dmg"
CODESIGN_CERT=-
if [ -n "$(security find-identity -v -p codesigning | grep 73B34EBEE504D5CEE35B113A22CEBFD381A21033)" ]; then
CODESIGN_CERT=73B34EBEE504D5CEE35B113A22CEBFD381A21033
fi
TMP_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 "${TMP_DIR}" ]; then
rm -rf "${TMP_DIR}" > /dev/null
fi
mkdir -p "${TMP_DIR}" > /dev/null
hdiutil attach -noverify -noautofsck -noautoopen "${DMG_FILE}"
cp -R -X "/Volumes/CleanMyMac X/CleanMyMac X.app" "${TMP_DIR}/" > /dev/null
hdiutil detach "/Volumes/CleanMyMac X"
rm -f "${TMP_DIR}/CleanMyMac X.app/Contents/embedded.provisionprofile" > /dev/null
chflags -R 0 "${TMP_DIR}" > /dev/null
xattr -cr "${TMP_DIR}" > /dev/null
}
function apply_crack() {
echo "[*] Apply patch"
SRC="${ROOT_PATH}/crack/CleanMyMac X"
DST="${TMP_DIR}/CleanMyMac X.app/Contents/MacOS/CleanMyMac X"
cp -f "${SRC}" "${DST}" > /dev/null
chflags -R 0 "${DST}"
chmod 755 "${DST}"
SRC="${ROOT_PATH}/crack/CMMFoundation"
DST="${TMP_DIR}/CleanMyMac X.app/Contents/Library/LoginItems/CleanMyMac X Menu.app/Contents/Frameworks/CMMFoundation.framework/Versions/A/CMMFoundation"
cp -f "${SRC}" "${DST}" > /dev/null
chflags -R 0 "${DST}"
chmod 755 "${DST}"
}
function sign_other() {
oldIFS=$IFS
IFS=$'\n'
for name in $(ls "${TMP_DIR}/CleanMyMac X.app/Contents/Library/LoginItems/")
do
if [ -f "${TMP_DIR}/CleanMyMac X.app/Contents/Library/LoginItems/${name}/Contents/embedded.provisionprofile" ]; then
rm -f "${TMP_DIR}/CleanMyMac X.app/Contents/Library/LoginItems/${name}/Contents/embedded.provisionprofile" > /dev/null
fi
sign_cmd "${TMP_DIR}/CleanMyMac X.app/Contents/Library/LoginItems/${name}"
done
IFS=oldIFS
}
function sign_app() {
echo "[*] Sign App"
sign_other
if [ -f "${TMP_DIR}/CleanMyMac X.app/Contents/embedded.provisionprofile" ]; then
rm -f "${TMP_DIR}/CleanMyMac X.app/Contents/embedded.provisionprofile" > /dev/null
fi
sign_cmd "${TMP_DIR}/CleanMyMac X.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 "CleanMyMac X" \
--background "${ROOT_PATH}/assets/CMMX.png" \
--window-pos 0 0 \
--window-size 679 412 \
--text-size 14 \
--icon-size 128 \
--icon "CleanMyMac X.app" 158 130 \
--app-drop-link 526 130\
--codesign "${CODESIGN_CERT}" \
"${PUBLISH_FILE}" \
"${TMP_DIR}/"
}
function publish_crack_dmg() {
#ensure_download_dmg
#copy_files
#apply_crack
sign_app
create_dmg
}
publish_crack_dmg