diff --git a/src/features/settings/panels/QMCv2/InstructionsIOS.tsx b/src/features/settings/panels/QMCv2/InstructionsIOS.tsx
index 1060f20..3454525 100644
--- a/src/features/settings/panels/QMCv2/InstructionsIOS.tsx
+++ b/src/features/settings/panels/QMCv2/InstructionsIOS.tsx
@@ -1,103 +1,51 @@
-import { Box, Code, Heading, ListItem, OrderedList, Text, UnorderedList } from '@chakra-ui/react';
-import { FilePathBlock } from '~/components/FilePathBlock';
-
-const EXAMPLE_MEDIA_ID = '0011wjLv1bIkvv';
-const EXAMPLE_NAME_IOS = '333407709-0011wjLv1bIkvv-1.mgalaxy';
-const EXAMPLE_NAME_DB = 'Q0M00011wjLv1bIkvv.mflac';
+import {
+ Accordion,
+ AccordionButton,
+ AccordionIcon,
+ AccordionItem,
+ AccordionPanel,
+ Box,
+ Heading,
+ Text,
+} from '@chakra-ui/react';
+import { InstructionsIOSCondition } from './InstructionsIOSCondition';
export function InstructionsIOS() {
return (
<>
- 不推荐从该平台客户端提取文件,因为使用者需要对 iOS 设备进行完整备份。
-
- 未越狱用户指南
-
- 未越狱用户需要对设备进行完整备份,并能提取备份内的文件。
-
-
- 使用你喜欢的备份软件对 iOS 设备进行完整备份;
-
-
- 打开备份文件,并导航到下述目录:
- /AppDomain-com.tencent.QQMusic/Documents/mmkv/
-
-
-
- 提取或导出密钥数据库文件 filenameEkeyMap
;
-
-
-
-
- 提交导出的 filenameEkeyMap
文件;
-
-
-
- 按下「保存」来应用更改。
-
-
-
- 获取离线文件
-
- 通过客户端下载的音乐文件存储在备份的下述目录:
- /AppDomain-com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic
-
- 该目录又存在数个子目录,其子目录下保存的「*.mgalaxy
」文件则是最终的加密文件。
-
-
- 格式:[随机数字]-[id]-[随机数字].mgalaxy
-
-
- 例:{EXAMPLE_NAME_IOS}
-
+ iOS 设备获取应用私有文件比较麻烦,你需要越狱或使用一台 PC 或 Mac 来对 iOS 设备进行完整备份。
+ 因此,建议换用 PC 或 Mac 重新下载音乐文件然后再尝试解密。
-
- 解密离线文件
-
- 勾选设定界面的「使用近似文件名匹配」可跳过该节内容。
- ⚠ 注意:若密钥过多,匹配过程可能会造成浏览器卡顿或无响应。
-
-
-
- 在上方的样例文件的情况下,得知其 id 为 {EXAMPLE_MEDIA_ID}
;
-
-
-
-
- 查找密钥表,得到文件名「{EXAMPLE_NAME_DB}
」;
-
-
-
-
- 将导出的「{EXAMPLE_NAME_IOS}
」更名为数据库存储的文件名「
- {EXAMPLE_NAME_DB}
」;
-
-
-
-
- 回到主界面,提交离线文件「{EXAMPLE_NAME_DB}
」。
-
-
-
-
- 越狱用户参考
-
- 该节信息根据网络上公开的信息整理,仅供参考。
-
-
- 密钥数据库文件路径:
-
- /var/mobile/Containers/Data/Application/<随机>/Documents/mmkv/filenameEkeyMap
-
-
-
- 离线音乐文件下载目录:
-
- /var/mobile/Containers/Data/Application/<随机>/Library/Application
- Support/com.tencent.QQMusic/iData/iMusic
-
-
-
+
+
+
+
+
+ 我的 iOS 设备已经越狱
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 我的 iOS 设备没有越狱
+
+
+
+
+
+
+
+
+
>
);
}
diff --git a/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx b/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx
new file mode 100644
index 0000000..2527e09
--- /dev/null
+++ b/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx
@@ -0,0 +1,101 @@
+import { Box, Code, Heading, Image, ListItem, OrderedList, Text } from '@chakra-ui/react';
+import iosAllowBackup from './iosAllowBackup.webp';
+import { FilePathBlock } from '~/components/FilePathBlock';
+
+const EXAMPLE_MEDIA_ID = '0011wjLv1bIkvv';
+const EXAMPLE_NAME_IOS = '333407709-0011wjLv1bIkvv-1.mgalaxy';
+const EXAMPLE_NAME_DB = 'Q0M00011wjLv1bIkvv.mflac';
+
+export function InstructionsIOSCondition({ jailbreak }: { jailbreak: boolean }) {
+ const useJailbreak = jailbreak;
+ const useBackup = !jailbreak;
+
+ const pathPrefix = jailbreak ? '/var/mobile/Containers/Data/Application/<随机>/' : '/AppDomain-';
+
+ return (
+ <>
+
+ 获取密钥数据库文件
+
+
+ {useBackup && (
+
+ 首先需要在 iOS 客户端的设定允许备份:
+
+
+ )}
+ {useBackup && (
+
+ 使用你喜欢的备份软件对 iOS 设备进行完整备份;
+
+ )}
+
+ {useBackup && 打开备份文件,并导航到下述目录:}
+ {useJailbreak && 访问下述目录:}
+ {pathPrefix}com.tencent.QQMusic/Documents/mmkv/
+
+
+
+ 提取或导出密钥数据库文件 filenameEkeyMap
;
+
+
+
+
+ 提交导出的 filenameEkeyMap
文件;
+
+
+
+ 按下「保存」来应用更改。
+
+
+
+
+ 获取离线文件
+
+
+ 访问下述目录:
+
+ {pathPrefix}com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic
+
+
+ 该目录又存在数个子目录,其子目录下保存的「[字符].m[字符]
」文件则是最终的加密文件。
+
+
+ 格式:[song_id]-[mid]-[随机数字].m[后缀]
+
+
+ 例:{EXAMPLE_NAME_IOS}
+
+
+
+
+ 解密离线文件
+
+ 勾选设定界面的「使用近似文件名匹配」可跳过该节内容。
+ ⚠ 注意:若密钥过多,匹配过程可能会造成浏览器卡顿或无响应。
+
+
+
+ 提取文件的 [mid]
部分,如 {EXAMPLE_MEDIA_ID}
;
+
+
+
+
+ 查找密钥表,得到文件名「{EXAMPLE_NAME_DB}
」;
+
+
+
+
+ 将文件更名为对应的文件名,如{EXAMPLE_NAME_IOS}
➔
+ {EXAMPLE_NAME_DB}
;
+
+
+
+
+ 回到主界面,提交文件「{EXAMPLE_NAME_DB}
」。
+
+
+
+ >
+ );
+}
diff --git a/src/features/settings/panels/QMCv2/iosAllowBackup.webp b/src/features/settings/panels/QMCv2/iosAllowBackup.webp
new file mode 100644
index 0000000..513d7b4
Binary files /dev/null and b/src/features/settings/panels/QMCv2/iosAllowBackup.webp differ