fix script

This commit is contained in:
somebasj 2022-09-07 11:03:00 +08:00
parent 35cc84952b
commit 7adf1050fb
20 changed files with 41 additions and 487 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

View File

@ -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
```

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
<key>com.apple.application-identifier</key>
<string>4C6364ACXT.com.parallels.desktop.console</string>
<key>com.apple.developer.associated-domains</key>
<array>
<string>webcredentials:my.parallels.com</string>
<string>webcredentials:my.myparallels.com</string>
</array>
<key>com.apple.developer.team-identifier</key>
<string>4C6364ACXT</string>
<key>com.apple.security.application-groups</key>
<array>
<string>4C6364ACXT.com.parallels.Desktop</string>
</array>
<key>keychain-access-groups</key>
<array>
<string>4C6364ACXT.com.parallels.desktop.passwords</string>
</array>
<key>com.apple.security.personal-information.addressbook</key>
<true/>
-->
<key>com.apple.security.automation.apple-events</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
</dict>
</plist>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<false/>
<key>com.apple.security.virtualization</key>
<true/>
<!--
<key>com.apple.vm.networking</key>
<true/>
-->
</dict>
</plist>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
<key>com.apple.application-identifier</key>
<string>4C6364ACXT.com.parallels.desktop.console</string>
<key>com.apple.developer.team-identifier</key>
<string>4C6364ACXT</string>
<key>com.apple.vm.networking</key>
<true/>
-->
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.hypervisor</key>
<true/>
<key>com.apple.vm.device-access</key>
<true/>
</dict>
</plist>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>

View File

@ -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

35
install.sh Normal file
View File

@ -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"

1
licenses.json Normal file
View File

@ -0,0 +1 @@
{"license":"{\"product_version\":\"18.*\",\"edition\":2,\"platform\":3,\"product\":7,\"offline\":true,\"cpu_limit\":32,\"ram_limit\":131072}"}

View File

@ -9,7 +9,9 @@ Crack for Parallels Desktop 18.0.1-53056
# Usage # Usage
run install.sh ```
sudo ./install.sh
```
# Manual # Manual
@ -29,7 +31,8 @@ sudo cp -f prl_disp_service "/Applications/Parallels Desktop.app/Contents/MacOS/
3. Copy licenses.json 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 4. Sign

View File

@ -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

View File

@ -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