Skip to content

Permission Capability Matrix - 权限能力矩阵

本章节集中记录 AutoJs6 6.7.0 中对 Android 权限、系统服务、Root、Shizuku、无障碍或特定 Android 版本敏感的脚本能力.

源码基准:

  • 上游仓库: xxxily/AutoJs6
  • 基准提交: ed3eb10e88db5a8425fd94bdddefa4176e5e1c94
  • 版本: 6.7.0
  • 主包 SDK: minSdk=24, targetSdk=36
  • INRT 包 SDK: targetSdk=29

源码依据:

  • app/src/main/AndroidManifest.xml
  • app/src/main/java/org/autojs/autojs/runtime/ScriptRuntime.kt
  • app/src/main/java/org/autojs/autojs/runtime/api/augment/*
  • app/src/main/java/org/autojs/autojs/core/*

机器可读数据:

  • json/runtimeApiIndexData.json

能力矩阵

能力API / 模块依赖 / 权限Android 版本边界源码依据文档入口
无障碍服务auto, automator, selector, UiObject, events.observeKey, events.observeToast, events.observeNotification用户启用 AutoJs6 无障碍服务; 部分开关可借 root 或 WRITE_SECURE_SETTINGS 写入; 运行时通过 AccessibilityBridge.ensureServiceStarted() 获取服务手势分发依赖 Android 无障碍能力; 部分 UiObjectActions 仅在较高 API 返回有效动作augment/automator/Auto.kt
augment/automator/Automator.kt
core/accessibility/AccessibilityTool.kt
core/accessibility/AccessibilityServiceUsher.kt
core/automator/*
Automator
UiSelector
UiObject
Event
全局按键 / 手势 / 控件动作click, longClick, press, swipe, gesture, back, home, recents, UiObject.click()优先依赖无障碍服务; RootAutomator 走 root / Shizuku 输入设备后端Automator.captureScreen() 使用无障碍截图时需 Android R / API 30+augment/automator/Automator.kt
core/automator/UiObjectActions.kt
core/inputevent/RootAutomator.java
Automator
UiObject
Root 输入与 Root shellnew RootAutomator(), shell(cmd, true), autojs.setRootMode(...), root 模式启动应用root 可用, 或 RootAutomator 可使用 Shizuku 后端; root shell 会执行特权命令受设备 root 状态和系统 SELinux / shell 权限限制augment/automator/RootAutomator.kt
augment/automator/RootAutomatorNativeObject.kt
augment/shell/Shell.kt
runtime/api/ProcessShell.java
util/RootUtils.java
Automator
Shell
AutoJs6
Shizuku 命令与系统组件查询shizuku.execCommand, shizuku.kill, shizuku.currentPackage, shizuku.currentActivity, shizuku.currentComponentShizuku 安装、服务运行、已授权且 WrappedShizuku.isOperational() 为真; manifest 声明 moe.shizuku.manager.permission.API_V23依赖 Shizuku 服务可用性和用户授权, 不等同于 rootaugment/shizuku/Shizuku.kt
runtime/api/WrappedShizuku.kt
permission/ShizukuPermission.kt
core/shizuku/UserService.kt
AndroidManifest.xml
Shizuku
当前前台包名 / Activity / ComponentcurrentPackage, currentActivity, currentComponent, app.currentPackage, shizuku.currentPackage默认可走无障碍; 可选择 root / Shizuku 模式受 Android 后台限制和可访问窗口信息影响augment/global/Global.kt
augment/app/App.kt
augment/shizuku/Shizuku.kt
Global
App
Shizuku
悬浮窗floaty.window, floaty.rawWindow, floaty.hasPermission, floaty.ensurePermission, console.show, console.buildandroid.permission.SYSTEM_ALERT_WINDOW; 用户允许 "显示在其他应用上层"Android O+ 使用新的 overlay window type; 具体展示还受系统厂商限制AndroidManifest.xml
augment/floaty/Floaty.kt
runtime/api/Floaty.kt
permission/DisplayOverOtherAppsPermission.kt
util/FloatingPermission.java
ui/enhancedfloaty/util/WindowTypeCompat.java
Floaty
Console
剪贴板读取floaty.getClip, 全局 getClip / setClipAndroid Q / API 29+ 后台剪贴板限制下, 源码优先借助悬浮窗权限创建窗口后读取Android Q+ 对后台剪贴板读取更严格; 无悬浮窗权限时可能失败或返回空augment/floaty/Floaty.kt
augment/global/Global.kt
runtime/api/Floaty.kt
com/stardust/util/ClipboardUtil.java
Floaty
Global
屏幕截图 / MediaProjectionimages.requestScreenCapture, images.requestScreenCaptureAsync, images.captureScreen, 全局 requestScreenCapture, captureScreen用户授予 MediaProjection 截屏确认; 或系统 appops PROJECT_MEDIA; manifest 包含前台服务和 media projection 相关权限Android 10+ 涉及前台服务类型; Android 14+ 对 MediaProjection 前台服务和一次性授权更严格; AutoJs6 通过 ScreenCaptureRequester / ScreenCapturer 管理会话augment/images/Images.kt
runtime/api/Images.java
core/image/capture/ScreenCaptureRequester.java
core/image/capture/ScreenCapturer.java
core/image/capture/ScreenCapturerForegroundService.kt
permission/MediaProjectionPermission.kt
AndroidManifest.xml
Image
无障碍截图automator.captureScreen()已启用无障碍服务源码中 takeScreenshot / 无障碍截图依赖 Android R / API 30+augment/automator/Automator.kt
core/accessibility/AccessibilityService.kt
Automator
通知发布与通知渠道notice(...), notice.channel.*, notice.ensureEnabled, events.observeNotification系统通知开关; Android 13+ 需要 POST_NOTIFICATIONS; 监听通知需通知监听服务或无障碍通知观察Android O / API 26+ 必须使用通知渠道; Android 13 / API 33+ 新增运行时通知权限AndroidManifest.xml
augment/notice/Notice.kt
augment/notice/Channel.kt
runtime/api/Notice.kt
util/NotificationUtils.kt
core/notification/NotificationListenerService.kt
runtime/api/Events.java
core/accessibility/AccessibilityNotificationObserver.kt
Notice
Event
系统设置写入autojs.canModifySystemSettings, autojs.canWriteSecureSettings, device.setBrightness, device.setMusicVolume, 指针位置相关能力WRITE_SETTINGS 需用户授权; WRITE_SECURE_SETTINGS 通常需 adb / root / 系统签名; manifest 已声明但不代表已授权Android M / API 23+ 对修改系统设置有专门授权页; secure settings 更受系统保护AndroidManifest.xml
permission/WriteSystemSettingsPermission.kt
permission/WriteSecureSettingsPermission.kt
util/SettingsUtils.java
augment/autojs/Autojs.kt
runtime/api/Device.java
core/accessibility/AccessibilityTool.kt
AutoJs6
Device
文件 / 外部存储files.*, sqlite.open, zip.*, http.saveToFile, mediainfo.read, images.read/save文件路径访问、媒体读取、外部存储权限或 Android scoped storage 策略; manifest 声明 READ/WRITE/MANAGE_EXTERNAL_STORAGE 与 READ_MEDIA_*Android 10+ scoped storage; Android 11+ MANAGE_EXTERNAL_STORAGE; Android 13+ 分媒体类型读取权限; manifest 设置 requestLegacyExternalStorage=trueAndroidManifest.xml
augment/files/Files.kt
runtime/api/Files.kt
permission/AllFilesAccessPermission.kt
external/fileprovider/AppFileProvider.java
augment/sqlite/SQLite.kt
augment/zip/Zip.kt
augment/http/ResponseBodyNativeObject.kt
augment/mediainfo/Mediainfo.kt
File
SQLite
Zip
HTTP
MediaInfo
网络请求 / WebSocket / WebView 加载http.*, web.newWebSocket, new WebSocket, web.loadUrl, images.load URLmanifest 声明 INTERNET; 网络状态读取依赖 ACCESS_NETWORK_STATE / ACCESS_WIFI_STATEINTERNET 不是运行时弹窗权限; 明文 HTTP 还受网络安全配置和 usesCleartextTraffic=true 影响AndroidManifest.xml
augment/http/Http.kt
runtime/api/Http.kt
augment/web/Web.kt
augment/web/WebSocket.kt
core/web/WebSocket.kt
augment/images/Images.kt
HTTP
Web
WebSocket
Image
OCR / 条码 / 二维码识别ocr.mlkit, ocr.paddle, ocr.rapid, barcode, qrcode传入图片时依赖图片文件 / bitmap; 不传图片而截图识别时依赖屏幕截图能力; Paddle 非 INRT 场景依赖插件或嵌入模型MLKit / Paddle / Rapid 各自依赖库可用性; 区域裁剪受图片坐标边界限制augment/ocr/Ocr.kt
augment/ocr/OcrMLKit.kt
augment/ocr/OcrPaddle.kt
augment/ocr/OcrRapid.kt
runtime/api/OcrMLKit.kt
runtime/api/OcrRapid.kt
core/plugin/ocr/PaddleOcrPluginHost.kt
augment/barcode/Barcode.kt
augment/barcode/QrCode.kt
runtime/api/WrappedBarcode.kt
OCR
Barcode
QR Code
MediaInfo 原生库mediainfo(path), mediainfo.read(path)本地媒体文件路径可访问; MediaInfo 原生库可用原生库不可用会抛出 MediaInfo library is not available; stream 函数固定读取 index 0augment/mediainfo/Mediainfo.kt
augment/mediainfo/MediainfoNativeObject.kt
org/mediainfo/android/MediaInfo.kt
MediaInfo
MediainfoNativeObject
系统属性sysprops.get, sysprops.list, sysprops.filter普通属性可读; 受系统属性权限和 SELinux 限制; root / Shizuku 可提升命令读取能力但不是 sysprops 入口默认保证Android 版本和厂商系统会影响可见属性augment/sysprops/Sysprops.ktSysprops
定时任务 / 精确闹钟 / 开机广播tasks.*manifest 声明 USE_EXACT_ALARM, SCHEDULE_EXACT_ALARM, RECEIVE_BOOT_COMPLETED; 用户系统策略可能限制精确闹钟和后台启动Android 12+ 精确闹钟权限策略更严格AndroidManifest.xml
augment/tasks/Tasks.kt
core/database/TimedTaskManager
Task
应用安装 / 卸载 / 包查询app.install, app.uninstall, app.getAppName, app.getPackageName, app.openAppSettingmanifest 声明安装 / 删除包、查询全部包等权限; 部分操作需要用户确认或系统授权Android 11+ 包可见性受 QUERY_ALL_PACKAGES 和 package visibility 影响AndroidManifest.xml
augment/app/App.kt
runtime/api/AppUtils.kt
App
震动 / 设备状态device.vibrate, device.getBattery, device.getScreenWidth, device.keepScreenOnVIBRATE, WAKE_LOCK; 大多设备信息读取无需运行时权限厂商系统可能限制后台保活与保持亮屏AndroidManifest.xml
augment/device/Device.kt
runtime/api/Device.java
Device
传感器sensors.register, sensors.on设备硬件传感器可用; 某些传感器可能受系统隐私策略限制Android 版本和设备硬件决定可用传感器列表与采样频率augment/sensors/Sensors.ktSensor
录音 / 录制recorder.*manifest 声明 RECORD_AUDIO; 录音需用户运行时授权Android 6+ 危险权限需动态授权; 后台录音受系统策略限制AndroidManifest.xml
augment/recorder/Recorder.kt
Recorder

使用建议

  • 知识库回答权限问题时, 优先引用本矩阵和具体模块页面的 "源码依据" 小节.
  • manifest 中存在的权限不代表脚本调用时已获得授权; 仍需结合运行时授权、系统开关和设备策略判断.
  • Root / Shizuku / 无障碍是三种不同执行通道, 不能互相等价. API 文档若标注了其中之一, 应按实际源码路径回答.

AutoJs6 应用文档