Runtime permissions, recents & split screen
Answer permission dialogs correctly, audit permissions, use recents, split-screen and picture-in-picture.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- Android Settings · iOS Settings · Recents
- Class GUI-need label
G2· GUI-essential
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R01.11.01.02-T01 Android: first-run grant microphone while-in-use, deny location
Original instruction
Open Audio Recorder for the first time on the Android 15 AVD. When it asks, allow microphone 'While using the app', deny location and deny notifications, then record a 3-second clip.
- Platforms
and· Android- Applications
- Android permission dialog · Audio Recorder
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gestures- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
dumpsys package: RECORD_AUDIO granted (foreground), ACCESS_FINE/COARSE_LOCATION not granted, POST_NOTIFICATIONS denied; new recording 2–5 s in app storage. Agent has no adb.
Proposed partial credit
40% mic granted correctly; 30% location and notifications denied; 30% recording made.
R01.11.01.02-T02 Android: revoke Camera from every app except Camera
Original instruction
Using Settings › Security & privacy › Privacy › Permission manager, revoke the Camera permission from every app that has it except the stock Camera app. Do not change any other permission.
- Platforms
and· Android- Applications
- Android Settings
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Per-package CAMERA grant set equals {com.android.camera2}; full permission dump diff vs snapshot shows no other changes. adb and root shell are withheld from the agent (screen input only), so pm revoke and appops set are unavailable; grants must be changed in Settings.
Proposed partial credit
70% camera grants exactly as specified; 30% no collateral permission changes.
R01.11.01.02-T03 Android: audit apps holding SMS or contacts access into a note
Original instruction
List every installed third-party app that currently holds READ_SMS or READ_CONTACTS. Write them to the Markor note perm_audit.md, one line per app as 'App label: SMS, Contacts' (only the permissions it holds), sorted by label.
- Platforms
and· Android- Applications
- Android Settings · Markor
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scrolltype· Text & forms- Work product
WP12· Answer/decision- Conditions
multiapp· Multi-app- Proposed difficulty
- 3 / 5
Proposed verifier
Grader derives the set from dumpsys package and compares to note lines exactly (set and permission lists, sort order). Seed randomises which apps hold grants. adb and root shell are withheld from the agent (screen input only), so dumpsys package is unavailable; grants must be read in Settings.
Proposed partial credit
50% correct app set; 30% correct permission per app; 20% format and sort.
R01.11.01.02-T04 Android: OsmAnd location 'Ask every time', WeatherDemo approximate only
Original instruction
Set OsmAnd's location permission to 'Ask every time' and WeatherDemo's to 'Allow only while using the app' with Precise location turned off. Leave background location off for both.
- Platforms
and· Android- Applications
- Android Settings
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
touch· Touch gestures- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
dumpsys package/appops: OsmAnd location flags one-time; WeatherDemo COARSE granted, FINE not granted, no ACCESS_BACKGROUND_LOCATION for either. adb and root shell are withheld from the agent (screen input only), so pm grant/revoke and appops set are unavailable; location must be set in Settings.
Proposed partial credit
40% OsmAnd ask-every-time; 40% WeatherDemo approximate while-in-use; 20% no background.
R01.11.01.02-T05 Android 14: grant PhotoProbe access to exactly three selected photos
Original instruction
PhotoProbe (test app) asks for photo access on launch. Choose 'Select photos' and pick exactly beach_01.jpg, receipt_07.jpg and dog_03.jpg from the 40 images in the picker, then return to the app.
- Platforms
and· Android- Applications
- Android photo picker · PhotoProbe
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
touch· Touch gesturesvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
PhotoProbe's own MediaStore query (logged to its result file) returns exactly the three media IDs; READ_MEDIA_IMAGES not fully granted (READ_MEDIA_VISUAL_USER_SELECTED only). adb and root shell are withheld from the agent (screen input only), so pm grant and media pushes are unavailable; the selection must be made in the photo picker.
Proposed partial credit
30% partial-access mode chosen; 70% exact three-photo set (deduct per wrong/missing).
R01.11.01.02-T06 iOS: Limited Photos access plus imprecise While-Using location
Original instruction
On the iOS 18 Simulator, launch ScanIt (test app). Grant Photos 'Limited Access' with only IMG_0004 and IMG_0011 selected, then grant location 'Allow While Using App' and afterwards turn off Precise Location for ScanIt in Settings.
- Platforms
ios· iOS/iPadOS- Applications
- iOS Settings · ScanIt
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
touch· Touch gesturesvis· Visual judgment- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader reads the simulator TCC.db (photos auth = limited) and ScanIt's accessible-asset log (exactly two local identifiers); locationd clients plist shows when-in-use and reduced accuracy. Host shell is withheld from the agent, so xcrun simctl privacy and direct TCC.db edits are unavailable; access must be set via prompts and Settings.
Proposed partial credit
40% limited photos with exact selection; 30% location while-using; 30% precise off.
R01.11.01.02-T07 Android: close every recent app except Clock and Files
Original instruction
Twelve apps are in Recents. Using the Recents overview, close all of them except Clock and Files; do not use 'Clear all'. Finish on the home screen.
- Platforms
and· Android- Applications
- Recents
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
dumpsys activity recents: task list equals {Clock, Files}; input event log shows no tap on the Clear all button; launcher is resumed.
Proposed partial credit
60% only Clock and Files remain; 20% Clear all not used; 20% ends on home.
R01.11.01.02-T08 Android: split screen with OsmAnd on top at about two-thirds height
Original instruction
Open Chrome and OsmAnd in split screen with OsmAnd on top, then drag the divider so OsmAnd occupies 60–72% of the screen height.
- Platforms
and· Android- Applications
- Recents · Chrome · OsmAnd
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesdrag· Drag & dropgeom· Precise geometry- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
dumpsys window: both tasks in multi-window split; OsmAnd bounds above Chrome; OsmAnd height / display height in [0.60, 0.72]. adb and root shell are withheld from the agent (screen input only), so am/wm windowing commands are unavailable; the split must be made from Recents.
Proposed partial credit
40% split screen with both apps; 20% correct order; 40% divider ratio in range.
R01.11.01.02-T09 Android: VLC picture-in-picture moved to top-left and enlarged
Original instruction
Play fixtures/lecture.mp4 in VLC, send it to picture-in-picture, drag the PiP window to the top-left corner and enlarge it by pinch so its width is at least 45% of the screen, then open Contacts.
- Platforms
and· Android- Applications
- VLC · System UI
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesdrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
dumpsys activity/window: VLC task windowing mode PINNED, PiP bounds left/top within 10% of display edges, width ≥ 0.45 display width; Contacts resumed; VLC still playing (media_session state). adb shell (am/wm commands, input injection) is not available to the agent, so PiP entry, drag and pinch must be done on the emulator screen.
Proposed partial credit
30% PiP active and playing; 30% top-left position; 20% size; 20% Contacts foreground.
R01.11.01.02-T10 Android: copy an address across split screen into a new contact
Original instruction
In split screen, open Chrome (fixture page /venue.html) and Contacts. Create contact 'Venue Hall' whose address is the street address shown on the page, transferred by text selection and drag-and-drop or copy-paste between the split panes.
- Platforms
and· Android- Applications
- Chrome · Contacts · Recents
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
touch· Touch gesturesdrag· Drag & dropmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
contacts2.db: contact Venue Hall with structured postal address string equal to page text; window log shows both apps in split mode during the transfer. Typing the address manually with typos fails the exact match. adb and root shell are withheld from the agent (screen input only), so am/wm and content insert are unavailable; split and contact must be made in the UI.
Proposed partial credit
30% split screen used; 20% contact created; 50% address exact.
R01.11.01.02-T11 Android: least-privilege answers to a six-permission first-run burst
Original instruction
QRPass (test app) needs only the camera to scan tickets. On first launch it requests camera, location, contacts, microphone, nearby devices and notifications. Grant only camera (while using), deny the rest including 'Don't allow' for notifications, then scan the ticket QR shown by the emulator's virtual scene.
- Platforms
and· Android- Applications
- Android permission dialog · QRPass
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesvis· Visual judgment- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
dumpsys package: only CAMERA granted among the six; QRPass backend log shows the ticket ID decoded from the scene. adb and root shell are withheld from the agent (screen input only), so pm grant/revoke is unavailable; answers must be given in the permission dialogs.
Proposed partial credit
50% only camera granted; 50% ticket scanned successfully.
R01.11.01.02-T12 Android: strip special access from a suspicious cleaner app
Original instruction
FakeCleaner (sandbox test app) holds Display over other apps, Install unknown apps, Usage access and device admin. Revoke all four special accesses via Settings › Apps › Special app access and deactivate its device admin. Do not uninstall the app.
- Platforms
and· Android- Applications
- Android Settings
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
risk· Irreversible/risky- Proposed difficulty
- 4 / 5
Proposed verifier
appops SYSTEM_ALERT_WINDOW, REQUEST_INSTALL_PACKAGES, GET_USAGE_STATS = deny/default-denied; dumpsys device_policy shows no admin for the package; package still installed.
Proposed partial credit
60% three special accesses revoked (20 each); 30% device admin removed; 10% app kept.
R01.11.01.02-T13 Android: report which apps used location in the last 24 hours
Original instruction
Using the Privacy dashboard, find every app that accessed location in the last 24 hours and the number of times each did. Write 'label,count' lines sorted by count descending to the Markor note loc_usage.md.
- Platforms
and· Android- Applications
- Android Settings · Markor
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scrolltype· Text & forms- Work product
WP12· Answer/decision- Conditions
multiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
Grader compares lines to the seeded permission-usage history (appops note-op events injected by fixture): app set exact, counts exact, order correct. adb and root shell are withheld from the agent (screen input only), so appops history cannot be dumped; usage must be read in the Privacy dashboard.
Proposed partial credit
50% app set; 30% counts; 20% format and order.
R01.11.01.02-T14 Android: disable unused-app permission removal for three apps
Original instruction
Turn off 'Pause app activity if unused' (permission auto-revoke) for OsmAnd, Markor and AntennaPod, and leave it on for all other apps.
- Platforms
and· Android- Applications
- Android Settings
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
appops AUTO_REVOKE_PERMISSIONS_IF_UNUSED: ignore for the three packages, allowed/default for all others (diff vs snapshot). adb and root shell are withheld from the agent (screen input only), so appops set is unavailable; exemptions must be set in Settings.
Proposed partial credit
80% three apps exempted; 20% others unchanged.
R01.11.01.02-T15 iOS: audit camera access and revoke it only for ScanIt
Original instruction
On the iOS 18 Simulator, open Settings › Privacy & Security › Camera, record which apps have access into a Notes note 'Camera audit' (one app per line), then revoke camera access for ScanIt only.
- Platforms
ios· iOS/iPadOS- Applications
- iOS Settings · Notes
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
touch· Touch gesturestype· Text & forms- Work product
WP08· App/system state- Conditions
multiapp· Multi-app- Proposed difficulty
- 3 / 5
Proposed verifier
TCC.db kTCCServiceCamera: ScanIt auth=denied, others unchanged; Notes store (NoteStore.sqlite) note 'Camera audit' lines equal the pre-change allowed set. The agent has no host shell or simctl (no 'simctl privacy' or direct TCC.db/NoteStore edits); a file-write audit on the Simulator data dir flags writes by any process other than Settings or Notes.
Proposed partial credit
40% ScanIt revoked; 20% others unchanged; 40% audit note exact.
R01.11.01.02-T16 iPad: Safari and Notes 50/50 Split View with Files in Slide Over
Original instruction
On the iPad Air Simulator (iPadOS 18, landscape), put Safari and Notes in Split View at 50/50 with Safari on the left, and add Files as a Slide Over window on the right.
- Platforms
ios· iOS/iPadOS- Applications
- iPadOS multitasking · Safari · Notes · Files
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesdrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader's XCUITest snapshot of SpringBoard windows: Safari frame x≈0, Notes on right, widths within 5% of half; Files window present in Slide Over layer. Host shell, Xcode and xcrun simctl are withheld from the agent, so windows can only be arranged with multitasking gestures.
Proposed partial credit
40% split view with correct apps; 30% 50/50 ratio and order; 30% Files in Slide Over.
R01.11.01.02-T17 Android 15: create and launch a saved app pair
Original instruction
On the Pixel Tablet AVD (Android 15), open Chrome and Markor in split screen, save them as an app pair to the home screen, close both, and relaunch the pair from its home-screen icon.
- Platforms
and· Android- Applications
- Android launcher · Recents
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesdrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
favorites.db contains an app-pair item with Chrome and Markor; after relaunch dumpsys window shows both in split; event log shows launch from the pair icon.
Proposed partial credit
30% split screen; 40% app pair saved; 30% relaunch from pair.
R01.11.01.02-T18 Android: onboard three apps per an MDM permission policy PDF
Original instruction
fixtures/mdm_policy.pdf (open in Docs viewer) lists allowed permissions per app. First-launch Field Notes, TimeClock and ChatDemo and answer every runtime prompt to match the policy, then fix any permission granted earlier that the policy forbids.
- Platforms
and· Android- Applications
- Android permission dialog · Android Settings · Docs viewer
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
touch· Touch gesturesvis· Visual judgmentmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Final runtime-permission grant sets for the three apps equal the policy table (dumpsys package); grade per app × permission cell. adb and root shell are withheld from the agent (screen input only), so pm grant/revoke is unavailable; grants must be answered in dialogs or Settings.
Proposed partial credit
70% allowed policy cells matched (per cell); 30% denied cells kept denied (punishes over-granting).
R01.11.01.02-T19 Android: note slide titles from a PiP lecture at given timestamps
Original instruction
Play fixtures/lecture.mp4 in VLC in picture-in-picture while Markor is in the foreground. Write the slide title visible at 01:10, 04:35 and 07:50 into slides.md, one per line in order, without leaving Markor in full screen for more than 20 s at a time.
- Platforms
and· Android- Applications
- VLC · Markor · System UI
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesvis· Visual judgmentav· Audio/video over time- Work product
WP12· Answer/decision- Conditions
multiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
slides.md lines equal the three ground-truth titles (case-insensitive exact); window log shows VLC in PINNED mode with Markor resumed for most of the episode. adb and root shell are withheld from the agent (screen input only), so am/wm windowing commands are unavailable; PiP must be entered from VLC.
Proposed partial credit
20% PiP workflow used; 80% titles correct (one third each).
R01.11.01.02-T20 Android: recover from 'Don't ask again' camera denial to finish a scan
Original instruction
QRPass was previously denied camera with 'Don't ask again', so its Scan button only shows an error. Restore camera access through system settings (not by reinstalling or clearing data), return to QRPass and scan the ticket in the virtual scene.
- Platforms
and· Android- Applications
- Android Settings · QRPass
- Interfaces
mob· Mobile touch- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
touch· Touch gesturesnav· Pan/zoom/scrollvis· Visual judgment- Work product
WP08· App/system state- Conditions
hidden· Hidden/stale state- Proposed difficulty
- 5 / 5
Proposed verifier
CAMERA granted to QRPass; package firstInstallTime and data dir inode unchanged (no reinstall/clear); QRPass backend logs the decoded ticket ID. adb and root shell are withheld from the agent (screen input only), so pm grant and pm clear are unavailable; the grant must be restored in Settings.
Proposed partial credit
50% permission restored without reinstall/clear; 50% ticket scanned.
Mapped research references
Existing benchmark-to-class links from the research catalog. They are not record-level annotations, executions or product endorsements.