Coder Social home page Coder Social logo

adsuite's Introduction

AdSuite

Dataset and Groundtruth

We have released our full dataset in google drive

You can use the notebook to read our labeled ad widgets.

Static Analysis

The static ad analysis is built in Java 8 (we use jdk corretto 1.8) Android 22

The deployment of android environment of our static ad analysis requires non-trivial effort. Therefore, we have constructed a docker image of the project and published in maishang9/adsuite

Command to run static ad analysis

docker run -dit -v {Your APK Directory}:/data -v {Static Ad Analysis Directory}:/gator maishang9/adsuite /bin/bash

docker exec -it {container_id} /bin/bash

conda activate myenv && cd gator/

python run_gator.py --apk_dir /data/{Your APK Directory} --adk_dir /usr/local/android-sdk-linux

If you have successfully run the code, you will have three output directory under the {Static Ad Analysis Directory} :

  • json_output/ : the ad widgets. Each apk outputs a json, the json include all widgets/view id/event handler of the apk. To help visualize the data, we put the code that extracts ad widgets in a jupyter notebook. Please run the notebook, which will generate a directory csv/ to store the ad widgets in csv format.
  • dot_output: the WTGs. They are already in good dot format, you can visualize them using graphiz.
  • log_output: the logs, which you can view the static process.

and a result.txt used to resume the static ad analysis (please see run_gator.py for how to rerun, redo failed apk)

Then, move the csv/ to UIExploration/data/csv/, and dot_output to UIExploration/data/dot/. We have put 3 examples .csv and .dot file there.

UI Exploration

The LLM-based UI Exploration is built upon Guardian [ISSTA 2024] framework. Our modification and enhancement of Guardian is mainly in \

  • atg.py: The code to process WTG dot file, make prompts
  • rag.py: The RAG code
  • guardian.py: The main UI Exploration framework

Below are the steps to reproduce our evaluation

  1. configure Openai api key as UIExploration/api.key
  2. Run rag.py to create rag embedding
  3. Run test_adsuite.py

adsuite's People

Contributors

kiteflykid avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.