Skip to content

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

limerick1718/acvcutter

 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Smali 91.2%
  • HTML 8.8%
  • Python 0.0%
  • CSS 0.0%
  • JavaScript 0.0%
  • OpenEdge ABL 0.0%