Fuyao Zhang1 ·
Jiaming Zhang1,* ·
Che Wang1 ·
Xiongtao Sun1 ·
Yurong Hao1
Guowei Guan1 ·
Wenjie Li1 ·
Longtao Huang2 ·
Wei Yang Bryan Lim1
1Nanyang Technological University 2Alibaba Group *Corresponding author
DualTAP is a lightweight adversarial protection framework for mobile multimodal LLM agents.
It addresses a privacy-utility conflict that arises when mobile GUI agents send screenshots containing personally identifiable information (PII) to third-party MLLM routers:
- Privacy goal: suppress PII extraction from sensitive screenshot regions.
- Utility goal: preserve visual and semantic cues needed for normal GUI-agent tasks.
DualTAP trains a generator with a dual-task adversarial objective and a contrastive attention module, enabling targeted perturbations over privacy-sensitive regions while maintaining task-relevant visual information.
- [2026-06] DualTAP has been accepted by ECCV 2026.
- [2025-12] We released the DualTAP code and PrivScreen Dataset.
- [2025-11] The preprint version of our paper was published.
flowchart LR
A[Mobile Screenshot] --> B[DualTAP Generator]
B --> C[Protected Screenshot]
C --> D[Mobile MLLM Agent]
C --> E[Untrusted MLLM Router]
D --> F[Task Completion]
E --> G[Reduced PII Leakage]
B -. targets .-> H[PII-sensitive Regions]
B -. preserves .-> I[Task-relevant Cues]
DualTAP operates before screenshots are exposed to potentially untrusted routers.
The protected screenshot is optimized to make PII harder to recover while keeping the visual context useful for downstream mobile-agent execution.
We release PrivScreen, a dataset for evaluating the privacy-utility trade-off in mobile MLLM agents.
Dataset link: PrivScreen on Hugging Face
Expected directory structure:
data/
├── {app}/
│ ├── images/
│ │ ├── {app}_01.png
│ │ └── ...
│ ├── normal_qa.json
│ └── privacy_qa.json
├── {app2}/
│ └── ...
└── ...
Each app folder contains:
| File / Folder | Description |
|---|---|
images/ |
Mobile screenshots used for evaluation and training |
normal_qa.json |
Functional GUI-agent queries for measuring task utility |
privacy_qa.json |
Privacy-probing queries for measuring PII leakage |
Create a clean environment and install dependencies:
conda create -n DAP python=3.10 -y
conda activate DAP
pip install -r requirements.txtTrain the DualTAP generator:
python train_map.pyThe surrogate model and attention method can be configured in the training configuration file.
Recommended attention setting:
attn_method = "contrast_pixel_grad"By default, the trained checkpoint is saved to:
checkpoint_eot/
python eval.py \
--checkpoint {path}.pth \
--output ./eval_results/{path}/eval.json \
--llm-model gpt-5-minipython eval_original.py \
--output ./eval_results/{path}/original.json \
--llm-model gpt-5-miniDualTAP supports API-based evaluation with OpenAI, Gemini, and OpenRouter-style providers.
python eval.py \
--checkpoint {path}.pth \
--use-api \
--api-type openai \
--api-model gpt-5 \
--output ./eval_results/gpt/eval_our.json \
--llm-model gpt-5-miniEvaluation results are saved as JSON files under eval_results/.
A typical output path is:
eval_results/
├── {experiment_name}/
│ ├── eval.json
│ └── original.json
└── ...
The evaluation is designed to measure both:
- Task utility, using normal GUI-agent queries.
- Privacy leakage, using privacy-probing queries.
DualTAP/
├── data/ # PrivScreen dataset directory
├── checkpoint_eot/ # Saved generator checkpoints
├── eval_results/ # Evaluation outputs
├── train_map.py # Training entry point
├── eval.py # Evaluation with DualTAP generator
├── eval_original.py # Evaluation on original screenshots
├── requirements.txt # Python dependencies
└── README.md
If you find this repository useful, please consider citing our paper:
@misc{zhang2025dualtapdualtaskadversarialprotector,
title={DualTAP: A Dual-Task Adversarial Protector for Mobile MLLM Agents},
author={Fuyao Zhang and Jiaming Zhang and Che Wang and Xiongtao Sun and Yurong Hao and Guowei Guan and Wenjie Li and Longtao Huang and Wei Yang Bryan Lim},
year={2025},
eprint={2511.13248},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/2511.13248},
}We thank the open-source community and prior work on mobile GUI agents, multimodal language models, and privacy-preserving machine learning for inspiring this project.

