运行时权限、多任务与分屏
Runtime permissions, recents & split screen
Answer permission dialogs correctly, audit permissions, use recents, split-screen and picture-in-picture.
20 条本项目编写的提案 · 分类 v1.1 · 新增基准运行 0 次。下方验证方式与部分得分规则是设计,不是执行结果。
- 典型应用
- Android Settings · iOS Settings · Recents
- 小类 GUI 需求标签
G2· GUI 必要
任务提案 · 20
展开查看完整原文与建议检查方式;两种界面均保留提案英文原文。
R01.11.01.02-T01 Android: first-run grant microphone while-in-use, deny location
原始指令
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.
- 平台
and· Android- 应用
- Android permission dialog · Audio Recorder
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android Settings
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android Settings · Markor
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动type· 文字与表单- 工作产物
WP12· 答案 / 决策- 条件
multiapp· 多应用- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android Settings
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
touch· 触控手势- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android photo picker · PhotoProbe
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
touch· 触控手势vis· 视觉判断nav· 平移 / 缩放 / 滚动- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
ios· iOS/iPadOS- 应用
- iOS Settings · ScanIt
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
touch· 触控手势vis· 视觉判断- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Recents
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
dumpsys activity recents: task list equals {Clock, Files}; input event log shows no tap on the Clear all button; launcher is resumed.
建议部分得分
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
原始指令
Open Chrome and OsmAnd in split screen with OsmAnd on top, then drag the divider so OsmAnd occupies 60–72% of the screen height.
- 平台
and· Android- 应用
- Recents · Chrome · OsmAnd
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势drag· 拖放geom· 精确几何- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- VLC · System UI
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势drag· 拖放- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Chrome · Contacts · Recents
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
touch· 触控手势drag· 拖放multi· 跨应用- 工作产物
WP08· 应用 / 系统状态- 条件
multiapp· 多应用- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android permission dialog · QRPass
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势vis· 视觉判断- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
50% only camera granted; 50% ticket scanned successfully.
R01.11.01.02-T12 Android: strip special access from a suspicious cleaner app
原始指令
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.
- 平台
and· Android- 应用
- Android Settings
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动- 工作产物
WP08· 应用 / 系统状态- 条件
risk· 高风险 / 不可逆- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android Settings · Markor
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动type· 文字与表单- 工作产物
WP12· 答案 / 决策- 条件
multiapp· 多应用- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
50% app set; 30% counts; 20% format and order.
R01.11.01.02-T14 Android: disable unused-app permission removal for three apps
原始指令
Turn off 'Pause app activity if unused' (permission auto-revoke) for OsmAnd, Markor and AntennaPod, and leave it on for all other apps.
- 平台
and· Android- 应用
- Android Settings
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
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.
建议部分得分
80% three apps exempted; 20% others unchanged.
R01.11.01.02-T15 iOS: audit camera access and revoke it only for ScanIt
原始指令
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.
- 平台
ios· iOS/iPadOS- 应用
- iOS Settings · Notes
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
touch· 触控手势type· 文字与表单- 工作产物
WP08· 应用 / 系统状态- 条件
multiapp· 多应用- 提案难度
- 3 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
ios· iOS/iPadOS- 应用
- iPadOS multitasking · Safari · Notes · Files
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势drag· 拖放- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android launcher · Recents
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势drag· 拖放- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android permission dialog · Android Settings · Docs viewer
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
touch· 触控手势vis· 视觉判断multi· 跨应用- 工作产物
WP08· 应用 / 系统状态- 条件
multiapp· 多应用long· 长流程- 提案难度
- 5 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- VLC · Markor · System UI
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势vis· 视觉判断av· 音视频时序- 工作产物
WP12· 答案 / 决策- 条件
multiapp· 多应用- 提案难度
- 4 / 5
建议验证方式
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.
建议部分得分
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
原始指令
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.
- 平台
and· Android- 应用
- Android Settings · QRPass
- 交互表面
mob· 移动触控- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G3· 仅 GUI- 交互原语
touch· 触控手势nav· 平移 / 缩放 / 滚动vis· 视觉判断- 工作产物
WP08· 应用 / 系统状态- 条件
hidden· 隐藏 / 过期状态- 提案难度
- 5 / 5
建议验证方式
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.
建议部分得分
50% permission restored without reinstall/clear; 50% ticket scanned.
已有研究映射
以下沿用研究目录中的基准与小类映射,不是逐题标注、执行记录或产品背书。