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}」。
>
);
}