Compare commits

..

No commits in common. "c58a40a1a68cf6e8999c69c8f96d42fb7d5ded05" and "67b400430f1a40f6de031fd25ba93f2174be954a" have entirely different histories.

4 changed files with 94 additions and 152 deletions

View File

@ -1,9 +0,0 @@
# 利用 ADB 访问安卓私有数据
```sh
APP_ID="com.tencent.qqmusic" # QQ 音乐
APP_ID="cn.kuwo.player" # 酷我
adb shell su -c "tar c '/data/data/${APP_ID}/' | base64" \
| base64 -d | pv | tar -x --strip-components 2
```

View File

@ -1,51 +1,103 @@
import { import { Box, Code, Heading, ListItem, OrderedList, Text, UnorderedList } from '@chakra-ui/react';
Accordion, import { FilePathBlock } from '~/components/FilePathBlock';
AccordionButton,
AccordionIcon, const EXAMPLE_MEDIA_ID = '0011wjLv1bIkvv';
AccordionItem, const EXAMPLE_NAME_IOS = '333407709-0011wjLv1bIkvv-1.mgalaxy';
AccordionPanel, const EXAMPLE_NAME_DB = 'Q0M00011wjLv1bIkvv.mflac';
Box,
Heading,
Text,
} from '@chakra-ui/react';
import { InstructionsIOSCondition } from './InstructionsIOSCondition';
export function InstructionsIOS() { export function InstructionsIOS() {
return ( return (
<> <>
<Text>使 iOS </Text>
<Heading as="h3" size="md" mt="3">
</Heading>
<Text></Text>
<OrderedList>
<ListItem>
<Text>使 iOS </Text>
</ListItem>
<ListItem>
<Text></Text>
<FilePathBlock>/AppDomain-com.tencent.QQMusic/Documents/mmkv/</FilePathBlock>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text></Text>
</ListItem>
</OrderedList>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Box> <Box>
<Text>iOS 使 PC Mac iOS </Text> <Text></Text>
<Text> PC Mac </Text> <Code>/AppDomain-com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic</Code>
<Text>
<Code>*.mgalaxy</Code>
</Text>
<Text>
<Code>[]-[id]-[].mgalaxy</Code>
</Text>
<Text>
&#x3000;<Code>{EXAMPLE_NAME_IOS}</Code>
</Text>
</Box> </Box>
<Accordion allowToggle mt="2"> <Heading as="h3" size="md" mt="3">
<AccordionItem> 线
<Heading as="h3" size="md">
<AccordionButton>
<Box as="span" flex="1" textAlign="left">
iOS
</Box>
<AccordionIcon />
</AccordionButton>
</Heading> </Heading>
<AccordionPanel pb={4}> <Text>使</Text>
<InstructionsIOSCondition jailbreak={true} /> <Text> </Text>
</AccordionPanel> <OrderedList>
</AccordionItem> <ListItem>
<Text>
<AccordionItem> id <Code>{EXAMPLE_MEDIA_ID}</Code>
<Heading as="h3" size="md"> </Text>
<AccordionButton> </ListItem>
<Box as="span" flex="1" textAlign="left"> <ListItem>
iOS <Text>
</Box> <Code>{EXAMPLE_NAME_DB}</Code>
<AccordionIcon /> </Text>
</AccordionButton> </ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_IOS}</Code>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
线<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
</OrderedList>
<Heading as="h3" size="md" mt="3">
</Heading> </Heading>
<AccordionPanel pb={4}> <Text></Text>
<InstructionsIOSCondition jailbreak={false} /> <UnorderedList>
</AccordionPanel> <ListItem>
</AccordionItem> <Text></Text>
</Accordion> <FilePathBlock>
/var/mobile/Containers/Data/Application/&lt;&gt;/Documents/mmkv/filenameEkeyMap
</FilePathBlock>
</ListItem>
<ListItem>
<Text>线</Text>
<FilePathBlock>
/var/mobile/Containers/Data/Application/&lt;&gt;/Library/Application
Support/com.tencent.QQMusic/iData/iMusic
</FilePathBlock>
</ListItem>
</UnorderedList>
</> </>
); );
} }

View File

@ -1,101 +0,0 @@
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 (
<>
<Heading as="h3" size="md">
</Heading>
<OrderedList>
{useBackup && (
<ListItem>
<Text> iOS </Text>
<Image src={iosAllowBackup}></Image>
</ListItem>
)}
{useBackup && (
<ListItem>
<Text>使 iOS </Text>
</ListItem>
)}
<ListItem>
{useBackup && <Text></Text>}
{useJailbreak && <Text>访</Text>}
<FilePathBlock>{pathPrefix}com.tencent.QQMusic/Documents/mmkv/</FilePathBlock>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text></Text>
</ListItem>
</OrderedList>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Box>
<Text>访</Text>
<FilePathBlock>
{pathPrefix}com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic
</FilePathBlock>
<Text>
<Code>[].m[]</Code>
</Text>
<Text>
<Code>[song_id]-[mid]-[].m[]</Code>
</Text>
<Text>
&#x3000;<Code>{EXAMPLE_NAME_IOS}</Code>
</Text>
</Box>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Text>使</Text>
<Text> </Text>
<OrderedList>
<ListItem>
<Text>
<Code>[mid]</Code> <Code>{EXAMPLE_MEDIA_ID}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code display="inline">{EXAMPLE_NAME_IOS}</Code>
<Code display="inline">{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
</OrderedList>
</>
);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB