安卓应用数据获取:从Androzoo数据集中获得样本(下载Google Play 应用)

安卓应用数据获取:从Androzoo数据集中获得样本(下载Google Play 应用)

Androzoo数据库介绍

网站链接:Androzoo

网站主页的介绍截取:Université du Luxembourg大学提供的公开数据集,是从包括官方Google Play应用市场在内的多个来源收集来的不断增长的Android应用程序集合。(具体比例可以在网站中的Markets条目查看 )

它目前(2021.4.27)包含15,082,219个不同的APK。

做实验需要Google Play的应用,本来尝试从 apkpure上获取,结果爬虫被拒绝访问也没有找到什么好方法,于是询问学长找到了这个数据集。

Androzoo数据库样本获取方法

API 使用方法在网站中有说明,见于API Documentation条目,可以使用 Curl命令、浏览器或者从脚本上下载应用。

下面以使用Curl命令来举例,网站中提供的命令pattern是:

curl -O --remote-header-name -G -d apikey=${APIKEY} -d sha256=${SHA256} \ https://androzoo.uni.lu/api/download

可以看到,下载应用需要 APIKEY(用户身份)和SHA256(指明应用)

获得APIKEY

说明在Access条目中,需要将申请电子邮件发送至[email protected],注明研究机构的名称和请求访问的人员的名称。确保从大学(或研究机构)的电子邮件帐户发送申请。

获取SHA256

说明在list条目中,有提供CSV文件(该文件每天Luxembourg当地凌晨6点之前更新),可下载,文件中的字段包括:

sha256,sha1,md5,apk_size,dex_size,dex_date,pkg_name,vercode,vt_detection,vt_scan_date,markets

其中就有下载需要的 sha256,将其填入命令中即可。

字段含义的详细介绍可到list条目中细看。

比较多使用的字段可能包括pkg_namemarkets,分别表示文件名和文件来源的应用市场。

条目下面也有使用方法范例,对第一个范例作简要说明:

仅选择来自Google Play商店的APK: zcat latest.csv.gz | grep -v ‘,snaggamea’ | awk -F, ‘{if ($11 ~ /play.google.com/) {print} }’

zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。第一个命令就是对最新CSV文件进行查看。
grep -v ',snaggamea' 警告中有说明:

有一个假APK(BC564D52C6E79E1676C19D9602B1359A33B8714A1DC5FCB8ED602209D0B70266),其pkg_name包含“,”。使用grep -v ',snaggamea’摆脱它。

awk是一个文本分析工具,会把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
使用方式是:

awk [-F field-separator] ‘commands’ input-file(s)
commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

也就是,以,为分隔符,如果是来自play.google.com的则打印。

学习

看了学长给我的代码,他们应该是将文件导入了数据库,通过数据库查询获得SHA256也是非常好的处理方法。

同时,在搜索过程中发现有大佬自己写了一份下载脚本,附在此处。
https://github.com/E0HYL/AndrozooDownloader

猜你喜欢

转载自blog.csdn.net/m0_54352040/article/details/116208636