fix script
parent
35cc84952b
commit
7adf1050fb
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 |
Binary file not shown.
@ -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
|
||||
```
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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
|
Binary file not shown.
@ -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"
|
@ -0,0 +1 @@
|
||||
{"license":"{\"product_version\":\"18.*\",\"edition\":2,\"platform\":3,\"product\":7,\"offline\":true,\"cpu_limit\":32,\"ram_limit\":131072}"}
|
@ -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
|
@ -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
|
Loading…
Reference in New Issue