The goal of this project is to implement a ML model analysis framework. To extract the model in the APK and perform some simple attack experiments.
We are using pipenv
to manage python dependencies, so you may need to install pipenv
first:
pip install pipenv
Once you have done that, you can install all the dependencies by the following command:
pipenv sync
This will also create a standalone python virtual environment with all packages installed.
Before running, we need to spawn a pipenv
shell environment first:
pipenv shell
Now you can get help message of ml-analyzer
tool by:
python main.py --help
usage: ml-analyzer [-h] [--adb-serial ADB_SERIAL] {detect,extract,run} ...
A ML model analysis framework.
positional arguments:
{detect,extract,run} sub-command help
optional arguments:
-h, --help show this help message and exit
--adb-serial ADB_SERIAL
A serial number which can be used to identify a
connected android device. can be found in `adb device
-l`.
python main.py detect --apk ./tests/apks/tflite_example_image_classification.apk
python main.py extract --apk ./tests/apks/tflite_example_image_classification.apk
We write test code and use pytest
to execute these tests. You do not need to install pytest
manually, which is already included in the virtual environment.
Just enter the pipenv
shell and run:
pytest --log-cli-level DEBUG
There are some tools that can be used in the process in the scripts
directory