This might look pretty close to this question, but my requirements are a little different. Given an .apk
file (Android app e.g. downloaded from a third party source like F-Droid), this analyzer
- should list what libraries are used by it
- should list whether the app uses some ad modules
- pointing out potential dangerous components (keyword: malware) would be great
- must run on Linux (not necessarily native: PHP, Python or Java would be fine, too – but something requiring e.g. Wine is not an option).
- must not require the entire Android SDK (or a similar huge framework) being installed (requiring parts of it, like the
aapt
binary, is fine) - consulting online resources is acceptable in certain limits (but e.g. no "calling home for statistics"), but offline-operation is preferred
In-depth code-analysis, decompilation, byte-code analysis etc. are not needed – just listing libraries and modules is fine (if it additionally can give an URL for more details, that counts as a bonus). A GUI is not required (but doesn't hurt) – however, a command-line interface is a must.
Results should be structured for automatical post-processing (preferably JSON or XML). My dream-case would be something I simply unpack to a directory, then call from there like ./apkanalyzer com.foobar
– and it spits some JSON/XML to STDOUT
.
I'm aware such a tool might not be able to detect each and every library/ad-module there is (especially as there might be new ones every day) – but the more it knows the better. If it reports "unknown libraries/modules" as such and gives the possibility to make them known (e.g. via a config file), that'd be a bonus.
The program must be free (as in "free beer"), should preferably also be free (as in "free speech"), and should be free (as in "hazzle-free setup" ;).