diff --git a/src/features/settings/panels/QMCv2/InstructionsMacV10.tsx b/src/features/settings/panels/QMCv2/InstructionsMacV10.tsx
index 30ab96b..4cf4035 100644
--- a/src/features/settings/panels/QMCv2/InstructionsMacV10.tsx
+++ b/src/features/settings/panels/QMCv2/InstructionsMacV10.tsx
@@ -39,10 +39,16 @@ export function InstructionsMacV10() {
,打开得到 {DUMP_COMMAND_NAME}。
- 双击运行 {DUMP_COMMAND_NAME},如果提示访问目录,请允许其访问。
+
+ 双击 {DUMP_COMMAND_NAME} 执行。
+
+
+ ※ 若是提示文件来自未知开发者,请右键点击该文件,选择菜单第一项
+ 打开,在警告窗口再次选择打开。
+
- 运行后会在当前目录生成 qqmusic-mac-*.mmkv 文件,其中 * 是一串随机字符。
+ 运行后会在脚本当前目录生成 qqmusic-mac-*.mmkv 文件,其中 * 是一串随机字符。
{inSecretImportModal ? (
diff --git a/src/features/settings/panels/QMCv2/InstructionsMacV8.tsx b/src/features/settings/panels/QMCv2/InstructionsMacV8.tsx
index 4bce9ec..9b743aa 100644
--- a/src/features/settings/panels/QMCv2/InstructionsMacV8.tsx
+++ b/src/features/settings/panels/QMCv2/InstructionsMacV8.tsx
@@ -6,7 +6,11 @@ import { MacCommandKey } from '~/components/Key/MacCommandKey';
import { ShiftKey } from '~/components/Key/ShiftKey';
import { copyToClipboard } from '~/util/clipboard';
-import BlockUpdateScript from './assets/QQ 音乐 Mac 屏蔽升级.tar.gz?base64';
+import {
+ commandName as BLOCK_UPDATE_COMAND,
+ tarName as BLOCK_UPDATE_TAR_NAME,
+ tarball as BLOCK_UPDATE_BASE64,
+} from './assets/qqmusic_v8.8.0_patch_update.command?&name=QQ 音乐 Mac v8.8.0 屏蔽更新.command&mac-command';
import { DownloadBase64 } from '~/components/DownloadBase64';
import { useContext } from 'react';
import { InSecretImportModalContext } from '~/context/InSecretImportModal';
@@ -38,10 +42,14 @@ export function InstructionsMacV8() {
部分用户可能会被强制要求更新。你可以下载
-
- 并执行 QQ 音乐 Mac 屏蔽升级.command。
+
+ 并执行 {BLOCK_UPDATE_COMAND}。
其原理是修改 QQ 音乐的版本号,让其认为自己是最新版本,从而达到屏蔽更新的效果。
+
+ ※ 若是提示文件来自未知开发者,请右键点击该文件,选择菜单第一项
+ 打开,在警告窗口再次选择打开。
+
密钥文件通常存储在下述路径:
{DB_PATH}
diff --git a/src/features/settings/panels/QMCv2/assets/QQ 音乐 Mac 屏蔽升级.tar.gz b/src/features/settings/panels/QMCv2/assets/QQ 音乐 Mac 屏蔽升级.tar.gz
deleted file mode 100644
index 55a6328..0000000
Binary files a/src/features/settings/panels/QMCv2/assets/QQ 音乐 Mac 屏蔽升级.tar.gz and /dev/null differ
diff --git a/src/features/settings/panels/QMCv2/assets/qqmusic_v10.7_dump.command b/src/features/settings/panels/QMCv2/assets/qqmusic_v10.7_dump.command
index 516e8b3..50f6a4c 100755
--- a/src/features/settings/panels/QMCv2/assets/qqmusic_v10.7_dump.command
+++ b/src/features/settings/panels/QMCv2/assets/qqmusic_v10.7_dump.command
@@ -8,6 +8,7 @@ import sys
from argparse import ArgumentParser
from dataclasses import dataclass
from os import PathLike
+from os.path import dirname
from pathlib import Path
from struct import pack, unpack
@@ -154,13 +155,12 @@ def main():
"-o",
"--output",
type=str,
- help="Output directory for decrypted MMKV files (default: current directory)",
- default=".",
+ help="Output directory for decrypted MMKV files (default: script directory)",
+ default=dirname(__file__),
)
parser.add_argument(
"-v", "--verbose", action="store_true", help="Enable verbose output"
)
- parser.add_argument("--no-pause", action="store_true", help="Do not pause on exit")
args = parser.parse_args()
home_dir = Path.home()
@@ -182,7 +182,6 @@ def main():
force = args.force
verbose = args.verbose
- no_pause = args.no_pause
for plist_file in plists:
if plist_file.exists() and plist_file.is_file():
@@ -209,9 +208,6 @@ def main():
print(f"Error writing decrypted mmkv: {e}", file=sys.stderr)
continue
- if not no_pause:
- input("Press Enter to exit...")
-
if __name__ == "__main__":
main()
diff --git a/src/features/settings/panels/QMCv2/assets/qqmusic_v8.8.0_patch_update.command b/src/features/settings/panels/QMCv2/assets/qqmusic_v8.8.0_patch_update.command
new file mode 100755
index 0000000..a86a7f4
--- /dev/null
+++ b/src/features/settings/panels/QMCv2/assets/qqmusic_v8.8.0_patch_update.command
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+echo '补丁中…'
+
+patch_count=0
+
+patch_qqmusic() {
+ SUDO="$1"
+ APP="$2"
+
+ if [ ! -d "$APP" ]; then
+ echo "路径不存在,跳过 $APP..."
+ return
+ fi
+
+ echo "修补 $APP..."
+ $SUDO sed -i.bak 's#8.8.0#88.8.0#' \
+ "$APP/Contents/Info.plist"
+ $SUDO codesign --force --deep --sign - "$APP"
+ $SUDO xattr -d com.apple.quarantine "$APP"
+
+ patch_count=$((patch_count + 1))
+}
+
+patch_qqmusic sudo "/Applications/QQMusic.app"
+patch_qqmusic "" "$HOME/Applications/QQMusic.app"
+
+echo "完成,已修补 $patch_count 个 QQ 音乐安装"