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