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 音乐安装"