148 lines
3.9 KiB
Bash
Executable File
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
|