ArtemKushnerov / az

Downloads apks from androzoo repository https://androzoo.uni.lu/
MIT License
116 stars 23 forks source link

CONTRIBUTION

I recently had no time to maintain the project, so you guys who use it are welcome to contribute. If you feel something is off and you see how to improve it feel free to create a Pull Request. Also, there is a Trello board with ideas for imporovements you can use it for inspiration https://trello.com/b/45PDuGf6/az .

Build Status

Downloads specified number of randomly chosen apks satisfying specified criteria from androzoo repository.
Saves specified metadata to metadata.csv. dexdate, apksize and vtdetection require specifying lower and upper bounds in format lower:upper, both inclusive.
One of the bounds can be omitted (i.e. you can write :upper or lower:)
pkgname, markets, metadata, sha256, sha1, md5 can be either single values or comma separated lists. Key and input file can be specified as options or via local or global config file. Allows downloading in the multiple threads.

PREREQUISITES

INSTALLATION

  1. pip install azoo

  2. create .az file in your home directory (~ on Linux and macOS, C:\Users\%USERNAME% on Windows) or in the directory where you want to invoke az from with the following contents:

    key=%API_KEY%  
    input_file=%PATH_TO_INPUT_FILE%

    Alternatively, use cli options -k and -i

Request the api key from androzoo, download and uncompress the input file from here https://androzoo.uni.lu/lists

CONFIGURATION

You can configure api key and input file either using cli options or .az configuration file. The file can be placed locally (in directory where you want to invoke az from) or globally (in your home directory). The precedence for reading config values is as follows: cli -> local-> global.

SAMPLE USAGE

az -n 10 -d 2015-12-11: -s :3000000 -m play.google.com,appchina

This means: download 10 apks with the dexdate starting from the 2015-12-11 (inclusive), size up to 3000000 bytes (inclusive) and present on either play.google.com or appchina

Options:
  -n, --number INTEGER     Number of apks to download.
  -d, --dexdate TEXT       The date on a dex file, format %Y-%m-%d, e.g.  2015-10-03.
  -s, --apksize TEXT       Apk size, in bytes.
  -vt, --vtdetection TEXT  Virus total rating, integer.
  -pn, --pkgname TEXT      Package names.
  -m, --markets TEXT       Markets, e.g. play.google.com. Possible values (can differ, since repository is updating): 1mobile,angeeks,anzhi,apk_bang,appchina,fdroid,freewarelovers,genome,hiapk,markets,mi.com,play.google.com,proandroid,slideme,torrents.
  --sha256 TEXT            SHA256 hashes.
  --sha1 TEXT              SHA1 hashes of apks to download.
  --md5 TEXT               MD5 hashes of apks to download.
  -md, --metadata TEXT     Metadata. This is a subset of latest.csv column names to keep in metadata.csv. By default sha256,pkg_name,apk_size,dex_date,markets.  
  -o, --out TEXT           Output folder name. By default current directory.
  -sd, --seed INTEGER      Seed for a random algorithm.
  -k, --key TEXT           Androzoo api key.
  -i, --input-file TEXT    Path to input csv.
  -t, --threads INTEGER    Number of threads for concurrent download. 4 by default.
  --version                Show the version and exit.
  --help                   Show this message and exit.