diff --git a/entitlements/ParallelsDesktop/ParallelsService.entitlements b/ParallelsService.entitlements similarity index 100% rename from entitlements/ParallelsDesktop/ParallelsService.entitlements rename to ParallelsService.entitlements diff --git a/assets/PDFM.VolumeIcon.icns b/assets/PDFM.VolumeIcon.icns deleted file mode 100644 index d947980..0000000 Binary files a/assets/PDFM.VolumeIcon.icns and /dev/null differ diff --git a/assets/PDFM.background.png b/assets/PDFM.background.png deleted file mode 100644 index a920f12..0000000 Binary files a/assets/PDFM.background.png and /dev/null differ diff --git a/assets/PTFM.VolumeIcon.icns b/assets/PTFM.VolumeIcon.icns deleted file mode 100644 index 38d1ff0..0000000 Binary files a/assets/PTFM.VolumeIcon.icns and /dev/null differ diff --git a/assets/PTFM.background.png b/assets/PTFM.background.png deleted file mode 100644 index a747306..0000000 Binary files a/assets/PTFM.background.png and /dev/null differ diff --git a/crack/pdfm-18.0.1.53056/prl_client_app b/crack/pdfm-18.0.1.53056/prl_client_app deleted file mode 100644 index 4dbd4f4..0000000 Binary files a/crack/pdfm-18.0.1.53056/prl_client_app and /dev/null differ diff --git a/crack/pdfm-18.0.1.53056/prl_client_app.md b/crack/pdfm-18.0.1.53056/prl_client_app.md deleted file mode 100644 index fae08af..0000000 --- a/crack/pdfm-18.0.1.53056/prl_client_app.md +++ /dev/null @@ -1,96 +0,0 @@ -# patch prl_client_app - -## 1. patch /usr/bin/codesign verify - -find string xref to "/usr/bin/codesign" - -### x86_64 - -``` -__text:000000010093B8D0 55 push rbp -__text:000000010093B8D1 48 89 E5 mov rbp, rsp -__text:000000010093B8D4 41 57 push r15 -__text:000000010093B8D6 41 56 push r14 -__text:000000010093B8D8 41 55 push r13 -__text:000000010093B8DA 41 54 push r12 -__text:000000010093B8DC 53 push rbx -__text:000000010093B8DD 48 81 EC 38 04 00 00 sub rsp, 438h -__text:000000010093B8E4 4C 89 85 B8 FB FF FF mov [rbp+var_448], r8 -__text:000000010093B8EB 48 89 8D B0 FB FF FF mov [rbp+var_450], rcx -__text:000000010093B8F2 48 89 95 A8 FB FF FF mov [rbp+var_458], rdx -__text:000000010093B8F9 41 89 F4 mov r12d, esi -__text:000000010093B8FC 48 89 FB mov rbx, rdi -__text:000000010093B8FF 48 8B 05 F2 91 B7 01 mov rax, cs:___stack_chk_guard_ptr -__text:000000010093B906 48 8B 00 mov rax, [rax] -__text:000000010093B909 48 89 45 D0 mov [rbp+var_30], rax -__text:000000010093B90D 48 8B 0D AC D9 C6 01 mov rcx, cs:off_1025A92C0 ; "4C6364ACXT" -__text:000000010093B914 48 8D 15 AC F2 18 00 lea rdx, aAnchorAppleGen_0 ; "=anchor apple generic and certificate l"... -__text:000000010093B91B 45 31 F6 xor r14d, r14d -__text:000000010093B91E 48 8D BD D0 FB FF FF lea rdi, [rbp+__str] ; __str -__text:000000010093B925 BE 00 04 00 00 mov esi, 400h ; __size -__text:000000010093B92A 31 C0 xor eax, eax -__text:000000010093B92C E8 11 A0 01 00 call _snprintf -__text:000000010093B931 48 C7 85 C0 FB FF FF 00+ mov [rbp+staticCode], 0 -__text:000000010093B931 00 00 00 -__text:000000010093B93C 48 8D 3D 72 F2 18 00 lea rdi, __file ; "/usr/bin/codesign" -__text:000000010093B943 BE 01 00 00 00 mov esi, 1 ; int -__text:000000010093B948 E8 73 9A 01 00 call _access -__text:000000010093B94D 85 C0 test eax, eax -__text:000000010093B94F 74 29 jz short loc_10093B97A -``` - -after - - -``` -__text:000000010093B8D0 sub_10093B8D0 proc near ; CODE XREF: sub_10093B890+11↑j -__text:000000010093B8D0 ; sub_10093B8B0+C↑j -__text:000000010093B8D0 6A 01 push 1 -__text:000000010093B8D2 58 pop rax -__text:000000010093B8D3 C3 retn -__text:000000010093B8D3 sub_10093B8D0 endp -``` - -### arm64 - -``` -__text:0000000100977800 FA 67 BB A9 STP X26, X25, [SP,#-0x10+var_40]! -__text:0000000100977804 F8 5F 01 A9 STP X24, X23, [SP,#0x40+var_30] -__text:0000000100977808 F6 57 02 A9 STP X22, X21, [SP,#0x40+var_20] -__text:000000010097780C F4 4F 03 A9 STP X20, X19, [SP,#0x40+var_10] -__text:0000000100977810 FD 7B 04 A9 STP X29, X30, [SP,#0x40+var_s0] -__text:0000000100977814 FD 03 01 91 ADD X29, SP, #0x40 -__text:0000000100977818 FF 43 11 D1 SUB SP, SP, #0x450 -__text:000000010097781C F6 03 04 AA MOV X22, X4 -__text:0000000100977820 F7 03 03 AA MOV X23, X3 -__text:0000000100977824 F4 03 02 AA MOV X20, X2 -__text:0000000100977828 F5 03 01 AA MOV X21, X1 -__text:000000010097782C F3 03 00 AA MOV X19, X0 -__text:0000000100977830 48 DB 00 B0 ADRP X8, #___stack_chk_guard_ptr@PAGE -__text:0000000100977834 08 69 45 F9 LDR X8, [X8,#___stack_chk_guard_ptr@PAGEOFF] -__text:0000000100977838 08 01 40 F9 LDR X8, [X8] -__text:000000010097783C A8 83 1B F8 STUR X8, [X29,#var_48] -__text:0000000100977840 E8 E2 00 D0 ADRP X8, #off_1025D5358@PAGE ; "4C6364ACXT" -__text:0000000100977844 08 AD 41 F9 LDR X8, [X8,#off_1025D5358@PAGEOFF] ; "4C6364ACXT" -__text:0000000100977848 E8 03 00 F9 STR X8, [SP,#0x490+var_490] -__text:000000010097784C C2 D9 00 F0 42 4C 3C 91 ADRL X2, aAnchorAppleGen_0 ; "=anchor apple generic and certificate l"... -__text:0000000100977854 E0 23 01 91 ADD X0, SP, #0x490+__str ; __str -__text:0000000100977858 01 80 80 52 MOV W1, #0x400 ; __size -__text:000000010097785C E1 7D 00 94 BL _snprintf -__text:0000000100977860 FF 1F 00 F9 STR XZR, [SP,#0x490+staticCode] -__text:0000000100977864 C0 D9 00 F0 00 04 3C 91 ADRL X0, aUsrBinCodesign ; "/usr/bin/codesign" -__text:000000010097786C 21 00 80 52 MOV W1, #1 ; int -__text:0000000100977870 1B 7B 00 94 BL _access -__text:0000000100977874 E0 01 00 34 CBZ W0, loc_1009778B0 -``` - -after - -``` -__text:0000000100977800 sub_100977800 ; CODE XREF: sub_1009777DC+10↑j -__text:0000000100977800 ; sub_1009777F0+C↑j -__text:0000000100977800 20 00 80 D2 MOV X0, #1 -__text:0000000100977804 C0 03 5F D6 RET -__text:0000000100977804 ; End of function sub_100977800 -``` - diff --git a/entitlements/ParallelsDesktop/ParallelsDesktop.entitlements b/entitlements/ParallelsDesktop/ParallelsDesktop.entitlements deleted file mode 100644 index ba165b6..0000000 --- a/entitlements/ParallelsDesktop/ParallelsDesktop.entitlements +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - com.apple.security.automation.apple-events - - com.apple.security.device.audio-input - - com.apple.security.device.camera - - - diff --git a/entitlements/ParallelsDesktop/ParallelsMacVM.entitlements b/entitlements/ParallelsDesktop/ParallelsMacVM.entitlements deleted file mode 100644 index 4838721..0000000 --- a/entitlements/ParallelsDesktop/ParallelsMacVM.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.virtualization - - - - diff --git a/entitlements/ParallelsDesktop/ParallelsVM.entitlements b/entitlements/ParallelsDesktop/ParallelsVM.entitlements deleted file mode 100644 index 310f693..0000000 --- a/entitlements/ParallelsDesktop/ParallelsVM.entitlements +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - com.apple.security.cs.allow-unsigned-executable-memory - - com.apple.security.hypervisor - - com.apple.vm.device-access - - - diff --git a/entitlements/ParallelsDesktop/ParallelsVM1014.entitlements b/entitlements/ParallelsDesktop/ParallelsVM1014.entitlements deleted file mode 100644 index a1c430a..0000000 --- a/entitlements/ParallelsDesktop/ParallelsVM1014.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.cs.allow-unsigned-executable-memory - - - diff --git a/entitlements/ParallelsDesktop/gen.sh b/entitlements/ParallelsDesktop/gen.sh deleted file mode 100644 index 9c8deaa..0000000 --- a/entitlements/ParallelsDesktop/gen.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -codesign -d --entitlements - --xml "/Volumes/Parallels Desktop 18/Parallels Desktop.app/Contents/MacOS/Parallels Mac VM.app" 2>/dev/null | plutil -convert xml1 -o - - > ParallelsMacVM.entitlements -codesign -d --entitlements - --xml "/Volumes/Parallels Desktop 18/Parallels Desktop.app/Contents/MacOS/Parallels Service.app" 2>/dev/null | plutil -convert xml1 -o - - > ParallelsService.entitlements -codesign -d --entitlements - --xml "/Volumes/Parallels Desktop 18/Parallels Desktop.app/Contents/MacOS/Parallels VM 10.14.app" 2>/dev/null | plutil -convert xml1 -o - - > ParallelsVM1014.entitlements -codesign -d --entitlements - --xml "/Volumes/Parallels Desktop 18/Parallels Desktop.app/Contents/MacOS/Parallels VM.app" 2>/dev/null | plutil -convert xml1 -o - - > ParallelsVM.entitlements -codesign -d --entitlements - --xml "/Volumes/Parallels Desktop 18/Parallels Desktop.app" 2>/dev/null | plutil -convert xml1 -o - - > ParallelsDesktop.entitlements diff --git a/entitlements/ParallelsDesktop/pd.provisionprofile b/entitlements/ParallelsDesktop/pd.provisionprofile deleted file mode 100644 index 45bc1ba..0000000 Binary files a/entitlements/ParallelsDesktop/pd.provisionprofile and /dev/null differ diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..1663e28 --- /dev/null +++ b/install.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd) + +PDFM_DISP_CRACK="${CUR_PATH}/prl_disp_service" +PDFM_DISP_DST="/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" +PDFM_DISP_ENT="${CUR_PATH}/ParallelsService.entitlements" + +LICENSE_FILE="${CUR_PATH}/licenses.json" +LICENSE_DST="/Library/Preferences/Parallels/licenses.json" + +echo "[*] Kill Parallels Desktop" + +killall -9 -q prl_client_app > /dev/null +killall -9 -q prl_disp_service > /dev/null + +echo "[*] Copy prl_disp_service" + +sudo cp -f ${PDFM_DISP_CRACK} "${PDFM_DISP_DST}" + +echo "[*] Sign prl_disp_service" + +sudo codesign -f -s - --timestamp=none --all-architectures --entitlements ${PDFM_DISP_ENT} "${PDFM_DISP_DST}" + +echo "[*] Copy licenses.json" + +sudo rm -f "${LICENSE_DST}" > /dev/null + +sudo cp "${LICENSE_FILE}" "${LICENSE_DST}" + +sudo chown root:wheel "${LICENSE_DST}" + +sudo chmod 444 "${LICENSE_DST}" + +echo "[*] Crack over" diff --git a/licenses.json b/licenses.json new file mode 100644 index 0000000..18267da --- /dev/null +++ b/licenses.json @@ -0,0 +1 @@ +{"license":"{\"product_version\":\"18.*\",\"edition\":2,\"platform\":3,\"product\":7,\"offline\":true,\"cpu_limit\":32,\"ram_limit\":131072}"} \ No newline at end of file diff --git a/crack/pdfm-18.0.1.53056/prl_disp_service b/prl_disp_service similarity index 100% rename from crack/pdfm-18.0.1.53056/prl_disp_service rename to prl_disp_service diff --git a/crack/pdfm-18.0.1.53056/prl_disp_service.md b/prl_disp_service.md similarity index 100% rename from crack/pdfm-18.0.1.53056/prl_disp_service.md rename to prl_disp_service.md diff --git a/readme.md b/readme.md index 7b1e6fd..5e48419 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,9 @@ Crack for Parallels Desktop 18.0.1-53056 # Usage -run install.sh +``` +sudo ./install.sh +``` # Manual @@ -29,7 +31,8 @@ sudo cp -f prl_disp_service "/Applications/Parallels Desktop.app/Contents/MacOS/ 3. Copy licenses.json ``` -sudo echo '{"license":"{\\"product_version\\":\\"18.*\\",\\"edition\\":2,\\"platform\\":3,\\"product\\":7,\\"offline\\":true,\\"cpu_limit\\":32,\\"ram_limit\\":131072}"}' > "/Library/Preferences/Parallels/licenses.json" +sudo rm -f "/Library/Preferences/Parallels/licenses.json" +sudo cp licenses.json "/Library/Preferences/Parallels/licenses.json" ``` 4. Sign diff --git a/scripts/install.sh b/scripts/install.sh deleted file mode 100644 index 39cbf83..0000000 --- a/scripts/install.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd) -ROOT_PATH=$(cd "${CUR_PATH}/../" && pwd) -PTFM_APP_DIR="/Applications/Parallels Toolbox.app" -PDFM_APP_DIR="/Applications/Parallels Desktop.app" -CODESIGN_CERT=- - -function sign_cmd() { - codesign -f -s ${CODESIGN_CERT} --timestamp=none --all-architectures --deep "$@" -} - -function kill_ptfm_app() { - killall -9 "Parallels Toolbox" 2> /dev/null -} - -function kill_pdfm_app() { - killall -9 prl_client_app 2> /dev/null -} - -function apply_pdfm_crack() { - echo "[*] Apply patch" - - SRC="${ROOT_PATH}/crack/pdfm-18.0.1.53056/prl_client_app" - DST="${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/prl_client_app" - echo "[*] Copy \"${SRC}\" to \"${DST}\"" - cp -f -X "${SRC}" "${DST}" > /dev/null - - SRC="${ROOT_PATH}/crack/pdfm-18.0.1.53056/prl_disp_service" - DST="${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" - echo "[*] Copy \"${SRC}\" to \"${DST}\"" - cp -f -X "${SRC}" "${DST}" > /dev/null -} - -function sign_pdfm() { - echo "[*] Sign Parallels Desktop App" - sign_cmd --entitlements "${ROOT_PATH}/entitlements/ParallelsDesktop/ParallelsService.entitlements" "${PDFM_APP_DIR}/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" -} - -if [ -d "${PDFM_APP_DIR}" ]; then - echo "[*] Install Parallels Desktop patch" - kill_pdfm_app - apply_pdfm_crack - sign_pdfm -else - echo "[*] not found ${PDFM_APP_DIR}, skip." -fi diff --git a/scripts/publish.sh b/scripts/publish.sh deleted file mode 100644 index 58c2d1e..0000000 --- a/scripts/publish.sh +++ /dev/null @@ -1,260 +0,0 @@ -#!/bin/bash - -CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd) -ROOT_PATH=$(cd "${CUR_PATH}/../" && pwd) -TEMP_PATH="${ROOT_PATH}/tmp" -PUBLISH_PATH="${ROOT_PATH}/publish" - -PTFM_VERSION="5.5.1-4410" -PDFM_VERSION="18.0.1-53056" - -PTFM_SHA256SUM="412bddebac28e229c7973dad6d702c67d1b42195b99b009af26ef036f5631349" -PDFM_SHA256SUM="8a021158b29b814f2942bb0afa5ca33fc6a87729578d1ad194e95a3f929b1e6f" - -PTFM_DMG_DOWNLOAD_URL="https://download.parallels.com/toolbox/v5/${PTFM_VERSION}/ParallelsToolbox-${PTFM_VERSION}.dmg" -PDFM_DMG_DOWNLOAD_URL="https://download.parallels.com/desktop/v18/${PDFM_VERSION}/ParallelsDesktop-${PDFM_VERSION}.dmg" - -PTFM_DMG_FILE="${TEMP_PATH}/download/ParallelsToolbox-${PTFM_VERSION}.dmg" -PDFM_DMG_FILE="${TEMP_PATH}/download/ParallelsDesktop-${PDFM_VERSION}.dmg" - -PTFM_PUBLISH_FILE="${PUBLISH_PATH}/ParallelsToolbox-${PTFM_VERSION}_Crack.dmg" -PDFM_PUBLISH_FILE="${PUBLISH_PATH}/ParallelsDesktop-${PDFM_VERSION}_Crack.dmg" - -CODESIGN_CERT=- - -PTFM_TMP_DIR="${TEMP_PATH}/ptfm_files" -PDFM_TMP_DIR="${TEMP_PATH}/pdfm_files" - -function sign_cmd() { - codesign -f -s ${CODESIGN_CERT} --timestamp=none --all-architectures --deep "$@" -} - -function ensure_download_ptfm_dmg() { - if [ -f "${PTFM_DMG_FILE}" ]; then - echo "[*] Check hash for \"${PTFM_DMG_FILE}\"" - FILE_HASH=$(shasum -a 256 -b "${PTFM_DMG_FILE}" | awk '{print $1}') - if [ ${FILE_HASH} != ${PTFM_SHA256SUM} ]; then - echo "[-] ${FILE_HASH} != ${PTFM_SHA256SUM}" - echo "[*] Delete \"${PTFM_DMG_FILE}\"" - rm -f "${PTFM_DMG_FILE}" - fi - fi - if [ ! -f "${PTFM_DMG_FILE}" ]; then - echo "[*] Download ${PTFM_DMG_DOWNLOAD_URL}" - mkdir -p $(dirname "${PTFM_DMG_FILE}") - curl -L --progress-bar -o "${PTFM_DMG_FILE}" "${PTFM_DMG_DOWNLOAD_URL}" - fi -} - -function ensure_download_pdfm_dmg() { - if [ -f "${PDFM_DMG_FILE}" ]; then - echo "[*] Check hash for \"${PDFM_DMG_FILE}\"" - FILE_HASH=$(shasum -a 256 -b "${PDFM_DMG_FILE}" | awk '{print $1}') - if [ ${FILE_HASH} != ${PDFM_SHA256SUM} ]; then - echo "[-] ${FILE_HASH} != ${PDFM_SHA256SUM}" - echo "[*] Delete \"${PDFM_DMG_FILE}\"" - rm -f "${PDFM_DMG_FILE}" - fi - fi - if [ ! -f "${PDFM_DMG_FILE}" ]; then - echo "[*] Download ${PDFM_DMG_DOWNLOAD_URL}" - mkdir -p $(dirname "${PDFM_DMG_FILE}") - curl -L --progress-bar -o "${PDFM_DMG_FILE}" "${PDFM_DMG_DOWNLOAD_URL}" - fi -} - -function copy_ptfm_files() { - echo "[*] Copy files" - if [ -d "${PTFM_TMP_DIR}" ]; then - rm -rf "${PTFM_TMP_DIR}" > /dev/null - fi - mkdir -p "${PTFM_TMP_DIR}" > /dev/null - - hdiutil attach -noverify -noautofsck -noautoopen "${PTFM_DMG_FILE}" - cp -R -X "/Volumes/Parallels Toolbox/Install Parallels Toolbox.app" "${PTFM_TMP_DIR}/" > /dev/null - hdiutil detach "/Volumes/Parallels Toolbox" - - rm -f "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/embedded.provisionprofile" > /dev/null - chflags -R 0 "${PTFM_TMP_DIR}" > /dev/null - xattr -cr "${PTFM_TMP_DIR}" > /dev/null -} - -function copy_pdfm_files() { - echo "[*] Copy files" - if [ -d "${PDFM_TMP_DIR}" ]; then - rm -rf "${PDFM_TMP_DIR}" > /dev/null - fi - mkdir -p "${PDFM_TMP_DIR}" > /dev/null - - hdiutil attach -noverify -noautofsck -noautoopen "${PDFM_DMG_FILE}" - cp -R -X "/Volumes/Parallels Desktop 18/Install.app" "${PDFM_TMP_DIR}/" > /dev/null - cp -R -X "/Volumes/Parallels Desktop 18/Parallels Desktop.app" "${PDFM_TMP_DIR}/" > /dev/null - hdiutil detach "/Volumes/Parallels Desktop 18" - - rm -f "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/embedded.provisionprofile" > /dev/null - chflags -R 0 "${PDFM_TMP_DIR}" > /dev/null - xattr -cr "${PDFM_TMP_DIR}" > /dev/null -} - -function apply_ptfm_crack() { - echo "[*] Apply patch" - - if [ -f /usr/local/opt/llvm/bin/llvm-strip ]; then - /usr/local/opt/llvm/bin/llvm-strip -s "${CRACK_LIB}" > /dev/null - fi - - RPATH="@rpath/${CRACK_LIB_DST_NAME}.dylib" - DST="${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Frameworks/${CRACK_LIB_DST_NAME}.dylib" - LOADER="${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Frameworks/libLogging.dylib" - - "${CUR_PATH}/insert_dylib" --inplace --overwrite --no-strip-codesig --all-yes \ - "${RPATH}" "${LOADER}" > /dev/null - - cp -f -X "${CRACK_LIB}" "${DST}" > /dev/null -} - -function apply_pdfm_crack() { - echo "[*] Apply patch" - - SRC="${ROOT_PATH}/crack/pdfm-18.0.1.53056/prl_client_app" - DST="${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/prl_client_app" - echo "[*] Copy \"${SRC}\" to \"${DST}\"" - cp -f -X "${SRC}" "${DST}" > /dev/null - - SRC="${ROOT_PATH}/crack/pdfm-18.0.1.53056/prl_disp_service" - DST="${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" - echo "[*] Copy \"${SRC}\" to \"${DST}\"" - cp -f -X "${SRC}" "${DST}" > /dev/null -} - -function sign_ptfm() { - echo "[*] Sign Parallels Toolbox App" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Library/Install/ToolboxInstaller" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Airplane Mode.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Alarm.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Archive.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Barcode Generator.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Barcode Reader.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Break Time.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/CPU Temperature.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Capture Area.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Capture Screen.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Capture Window.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Clean Drive.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Clipboard History.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Convert Video.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Date Countdown.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Do Not Disturb.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Do Not Sleep.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Download Audio.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Download Video.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Eject Volumes.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Encrypt Files.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Energy Saver.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Find Duplicates.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Focus on Window.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Free Memory.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Hidden Files.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Hide Desktop Files.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Hide Menu Icons.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Launch.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Lock Screen.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Make GIF.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Mute Microphone.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Parallels Tool Launcher.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Presentation Mode.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Recognize Text.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Area.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Audio.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Screen.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Window.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Resize Images.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Screenshot Page.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Show Desktop.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Sleep Timer.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Stopwatch.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Switch Resolution.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Take Photo.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Take Video.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Timer.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Transform Text.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Unarchive.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Uninstall Apps.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Unit Converter.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Verify Checksum.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Window Manager.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/World Time.app" - sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app" -} - -function sign_pdfm() { - echo "[*] Sign Parallels Desktop App" - sign_cmd --entitlements "${ROOT_PATH}/entitlements/ParallelsDesktop/ParallelsService.entitlements" "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" - sign_cmd --entitlements "${ROOT_PATH}/entitlements/ParallelsDesktop/ParallelsService.entitlements" "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" -} - -function set_pdfm_app_hide() { - chflags hidden "${PDFM_TMP_DIR}/Parallels Desktop.app" > /dev/null -} - -function create_ptfm_dmg() { - echo "[*] Create dmg ${PTFM_PUBLISH_FILE}" - mkdir -p "${PUBLISH_PATH}" - - if [ -f "${PTFM_PUBLISH_FILE}" ]; then - rm -f "${PTFM_PUBLISH_FILE}" > /dev/null - fi - - create-dmg \ - --volname "Parallels Toolbox" \ - --volicon "${ROOT_PATH}/assets/PTFM.VolumeIcon.icns" \ - --background "${ROOT_PATH}/assets/PTFM.background.png" \ - --window-pos 0 0 \ - --window-size 640 415 \ - --icon-size 256 \ - --icon "Install Parallels Toolbox.app" 450 126 \ - --codesign ${CODESIGN_CERT} \ - "${PTFM_PUBLISH_FILE}" \ - "${PTFM_TMP_DIR}/" -} - -function create_pdfm_dmg() { - echo "[*] Create dmg ${PDFM_PUBLISH_FILE}" - mkdir -p "${PUBLISH_PATH}" - - if [ -f "${PDFM_PUBLISH_FILE}" ]; then - rm -f "${PDFM_PUBLISH_FILE}" > /dev/null - fi - - create-dmg \ - --volname "Parallels Desktop 18" \ - --volicon "${ROOT_PATH}/assets/PDFM.VolumeIcon.icns" \ - --background "${ROOT_PATH}/assets/PDFM.background.png" \ - --window-pos 0 0 \ - --window-size 640 415 \ - --icon-size 256 \ - --icon "Install.app" 450 126 \ - --codesign ${CODESIGN_CERT} \ - "${PDFM_PUBLISH_FILE}" \ - "${PDFM_TMP_DIR}/" -} - -function publish_ptfm_crack_dmg() { - ensure_download_ptfm_dmg - copy_ptfm_files - apply_ptfm_crack - sign_ptfm - create_ptfm_dmg -} - -function publish_pdfm_crack_dmg() { - ensure_download_pdfm_dmg - copy_pdfm_files - apply_pdfm_crack - sign_pdfm - set_pdfm_app_hide - create_pdfm_dmg -} - -# publish_ptfm_crack_dmg -publish_pdfm_crack_dmg