从保存受限的手机APP中提取文件(读取Android系统中的新增缓存文件)

这个手机APP的权限可能设置了无法在应用内保存文件,但是这个文件实际上一定存在于本地的某个地方,本文的方法通过遍历最后修改日期今天的文件,很容易就可以找到它。

首先安装一个QPython,这个软件可以允许你在安卓手机上运行Python程序:

从保存受限的手机APP中提取文件(读取Android系统中的新增缓存文件)_第1张图片

然后新建一个脚本,运行如下代码:

import os, time

MIN_DATE = time.localtime()[:3]
MIN_SIZE = 1e6

result = []
os.chdir('..')
print('Dir:', os.getcwd())
for root, _, files in os.walk('.'):
    for file in files:
        path = os.path.join(root, file)
        size = os.stat(path).st_size
        mtime = time.localtime(os.stat(path).st_mtime)
        if mtime > MIN_DATE and size > MIN_SIZE:
            result.append((size, mtime[3:6], path))

for item in sorted(result):
    print(*item)

print('Total:', len(result))

其中MIN_DATE用于过滤显示最后修改时间在指定时间之后的文件,这里自动获取的今天的日期。

其中MIN_SIZE用于过滤显示文件大小大于设定大小的文件,这里的1e6就是1MB的大小。

最后结果按照文件大小排序,并返回文件大小、文件修改日期的时分秒、和文件路径的3元组数据:

从保存受限的手机APP中提取文件(读取Android系统中的新增缓存文件)_第2张图片

为了缩小范围,可以先在运行前清除APP的缓存,然后重新在APP中访问文件。这样文件会重新下载,在更加可知的时间范围内创建本地缓存,缩小检索范围。

看到路径、文件名、文件格式,觉得差不多的都可以试一下。

然后根据文件路径在文件浏览器中找一下即可:

从保存受限的手机APP中提取文件(读取Android系统中的新增缓存文件)_第3张图片

比方说翎信,在APP内提示无法保存文件,但是在缓存目录中可以找到加载过的文件:

~/Android/data/com.htkx.wxwork/files/tencent/LocalWeixinWork/com.htkx.wxwork/filecache/

你可能感兴趣的:(Python,Android,python,android)