Skip to content
/ acvcut Public

This tool shrinks/debloat Android apps towards executed code. Based on ACVTool instruction coverage.

License

Notifications You must be signed in to change notification settings

pilgun/acvcut

Repository files navigation

  • This repository is not maintained at the moment. Please explore latest shrinking functionality in ACVTool.

ACVCut

This tool prototype shrinks Android apps towards executed code. Based on the instruction coverage measured by ACVTool.

Software license Python version DOI

Setup

  • to setup config.json please check the Installation section, step 2 at the ACVTool readme
  • java and adb should be available from the terminal
  • run emulator
  • check Python dependecies if the script crashes

Workflow

  • an APK is being instrumented by ACVTool
  • installed
  • instrumentation process started (code coverage measurement)
  • the app is ready for tests
  • instruction coverage generated
  • ACVCut shrinks the app and creates the shrunk version (shrunk.apk)

Usage

> python2 prepare_wd.py <apk_path> --wd <working_dir> --package <package_name>
> python2 acvcut.py <apk_path> --wd <working_dir> --package <package_name>

Notes

ACVCut is a proof of work tool that worked with the TimeBomb sample and the Twitter Lite app on the API 25 Android Emulator. The tool is likely to have bugs and may require some tweaks when run on other apps.