You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用ADB搭配PowerShell查询及调整三星S20(安卓13)的应用权限与设置?

借助ADB+PowerShell批量管理三星S20(Android 13)应用权限与功能

完全可以通过ADB结合PowerShell实现批量操作,以下是针对各类应用设置的具体操作方案:

一、批量查询并禁用应用通知

1. 列出所有通知已启用的应用

在PowerShell中执行以下命令,获取所有通知权限处于启用状态的应用包名:

adb shell dumpsys notification | Select-String "package=([a-zA-Z0-9.]+)" -AllMatches | ForEach-Object { $_.Matches.Groups[1].Value } | Sort-Object -Unique | ForEach-Object {
    $status = adb shell cmd notification is-enabled $_
    if ($status -eq "enabled") { $_ }
}

2. 批量禁用通知

将上述输出的包名列表批量传入禁用命令,直接执行:

adb shell dumpsys notification | Select-String "package=([a-zA-Z0-9.]+)" -AllMatches | ForEach-Object { $_.Matches.Groups[1].Value } | Sort-Object -Unique | ForEach-Object {
    if ((adb shell cmd notification is-enabled $_) -eq "enabled") {
        adb shell cmd notification disable $_
        Write-Host "已禁用 $_ 的通知"
    }
}

二、批量管理位置权限

1. 列出位置权限已启用的应用

获取所有允许使用精确定位/模糊定位的应用:

adb shell dumpsys appops | Select-String "([a-zA-Z0-9.]+)\s+ACCESS_FINE_LOCATION\s+allow" | ForEach-Object { $_.Matches.Groups[1].Value } | Sort-Object -Unique

2. 批量禁用位置权限

批量撤销应用的精确定位、模糊定位及后台定位权限:

$packages = adb shell dumpsys appops | Select-String "([a-zA-Z0-9.]+)\s+ACCESS_FINE_LOCATION\s+allow" | ForEach-Object { $_.Matches.Groups[1].Value } | Sort-Object -Unique
foreach ($pkg in $packages) {
    adb shell appops set $pkg ACCESS_FINE_LOCATION deny
    adb shell appops set $pkg ACCESS_COARSE_LOCATION deny
    adb shell appops set $pkg ACCESS_BACKGROUND_LOCATION deny
    Write-Host "已禁用 $pkg 的位置权限"
}

三、批量管理悬浮窗权限

1. 列出悬浮窗权限已启用的应用

获取允许显示悬浮窗的应用包名:

adb shell dumpsys appops | Select-String "([a-zA-Z0-9.]+)\s+SYSTEM_ALERT_WINDOW\s+allow" | ForEach-Object { $_.Matches.Groups[1].Value } | Sort-Object -Unique

2. 批量禁用悬浮窗权限

批量关闭应用的悬浮窗权限:

$packages = adb shell dumpsys appops | Select-String "([a-zA-Z0-9.]+)\s+SYSTEM_ALERT_WINDOW\s+allow" | ForEach-Object { $_.Matches.Groups[1].Value } | Sort-Object -Unique
foreach ($pkg in $packages) {
    adb shell appops set $pkg SYSTEM_ALERT_WINDOW deny
    Write-Host "已禁用 $pkg 的悬浮窗权限"
}

四、批量管理设备管理员权限

1. 列出已激活的设备管理员

获取当前已激活的设备管理员组件(注意:设备管理员是组件级,而非包级):

adb shell dpm list active-admin | Select-String "component=([a-zA-Z0-9./]+)" | ForEach-Object { $_.Matches.Groups[1].Value }

2. 批量移除设备管理员

批量移除已激活的设备管理员组件:

$admins = adb shell dpm list active-admin | Select-String "component=([a-zA-Z0-9./]+)" | ForEach-Object { $_.Matches.Groups[1].Value }
foreach ($admin in $admins) {
    adb shell dpm remove-active-admin $admin
    Write-Host "已移除设备管理员 $admin"
}

注意事项

  • 操作前确保手机已开启USB调试,并在PowerShell中能正常连接ADB(可通过adb devices验证)。
  • 部分系统核心应用(如系统设置、电话)的权限禁用可能导致功能异常,操作前请确认目标应用。

内容的提问来源于stack exchange,提问作者Jonny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:35:17