atm工具

Access Token Manager (程序访问控制管理工具,简称atm工具),是用于查询或设置应用进程的权限、使用类型等信息的工具,为开发者提供了根据tokenid、包名、进程名等信息进行访问控制管理的能力。

环境说明

在使用本工具前,开发者需要先获取hdc工具,执行hdc shell。

atm工具命令列表

命令 描述
help 帮助命令,显示atm支持的命令信息。
perm 权限命令,为应用进程授予或取消权限。
toggle 弹窗开关/权限使用记录开关状态命令,设置或获取权限弹窗/权限使用记录开关状态。 此命令仅在root版本下可用。
dump 查询命令,用于查询访问控制相关数据信息。

帮助命令

# 显示帮助信息
atm help

权限命令

atm perm [-h] [-g -i <token-id> -p <permission-name>] [-c -i <token-id> -p <permission-name>]

权限命令参数列表

参数 参数说明
-h 帮助信息。
-g -i <token-id> -p <permission-name> -g、-i、-p均为必选参数,通过应用进程的tokenid授予指定权限。返回是否成功。
-c -i <token-id> -p <permission-name> -c、-i、-p均为必选参数,通过应用进程的tokenid取消指定权限。返回是否成功。

示例:

# 显示atm perm的帮助信息
atm perm -h

# 为应用进程授予相机权限
atm perm -g -i ********* -p ohos.permission.CAMERA

# 为应用进程取消相机权限
atm perm -c -i ********* -p ohos.permission.CAMERA

弹窗开关状态命令

atm toggle [-h] [-r -s -i <user-id> -p <permission-name> -k <status>] [-r -o -i <user-id> -p <permission-name>]

弹窗开关状态命令参数列表

参数 参数说明
-h 帮助信息。
-r -s -i <user-id> -p <permission-name> -k <status> -r、-s、-i、-p、-k均为必选参数,在指定用户下,设置指定权限的弹窗开关状态为status。返回是否成功。
-r -o -i <user-id> -p <permission-name> -r、-o、-i、-p均为必选参数,在指定用户下,返回指定权限的弹窗开关状态。

示例:

# 显示atm toggle的帮助信息
atm toggle -h

# 设置用户0下相机权限的弹窗开关状态为开启
atm toggle -r -s -i 0 -p ohos.permission.CAMERA -k 1

# 获取用户0下相机权限的弹窗开关状态
atm toggle -r -o -i 0 -p ohos.permission.CAMERA

权限使用记录开关状态命令

atm toggle [-h] [-u -s -i <user-id> -k <status>] [-u -o -i <user-id>]

权限使用记录开关状态命令参数列表

参数 参数说明
-h 帮助信息。
-u -s -i <user-id> -k <status> -u、-s、-i、-k均为必选参数,在指定用户下,设置权限使用记录开关状态为status。返回是否成功。
-u -o -i <user-id>  -u、-o、-i均为必选参数,在指定用户下,返回权限使用记录开关状态。

示例:

# 显示atm toggle的帮助信息
atm toggle -h

# 设置用户0下权限使用记录开关状态为开启
atm toggle -u -s -i 0 -k 1

# 获取用户0下权限使用记录开关状态
atm toggle -u -o -i 0

查询命令

atm dump [-h] [-t [-i <token-id>] [-b <bundle-name>] [-n <process-name>]] [-r [-i <token-id>] [-p <permission-name>]] [-v [-i <token-id>] [-p <permission-name>]]

下表所列命令中,-t、-r、-v为必选参数,-i、-b、-n、-p为可选参数。对atm dump -r和atm dump -v命令,-i和-p参数可以组合使用;对atm dump -t命令,-i、-b、-n参数只能单独使用。

参数 参数说明
-h 帮助信息。
-t 必选参数,查询系统中所有应用进程信息。
-t -i <token-id> 可选参数,通过应用进程的tokenid,查询该应用的基本信息以及对应的权限信息。
-t -b <bundle-name> 可选参数,通过应用进程的包名bundle-name,查询该应用的基本信息以及对应的权限信息。
-t -n <process-name> 可选参数,通过应用进程的进程名process-name,查询该应用的基本信息以及对应的权限信息。
-r 必选参数,查询系统内的所有权限使用记录。
-r -i <token-id> 可选参数,通过应用进程的tokenid,查询该应用的权限使用记录。
-r -p <permission-name> 可选参数,通过权限名,查询该权限的使用记录。
-v 必选参数,查询系统中所有应用进程的权限使用类型。
-v -i <token-id> 可选参数,通过应用进程的tokenid,查询该应用的权限使用类型。
-v -p <permission-name> 可选参数,通过权限名,查询该权限的使用类型。

示例:

#显示atm dump的帮助信息
atm dump -h

#查询系统中所有应用进程的tokenid和包名
atm dump -t

#按tokenid查询权限信息
atm dump -t -i *********

#按包名查询权限信息
atm dump -t -b ohos.telephony.resources

#按进程名查询权限信息
atm dump -t -n *********

#查询所有应用的权限使用类型
atm dump -v

#按应用tokenid查询权限使用类型
atm dump -v -i *********

#按权限名查询权限使用类型
atm dump -v -p ohos.permission.CAMERA

#按应用tokenid和权限名查询权限使用类型
atm dump -v -i ********* -p ohos.permission.CAMERA
#查询系统内的所有权限使用记录
atm dump -r

#按应用tokenid查询权限使用记录
atm dump -r -i *********

#按权限名查询权限使用记录
atm dump -r -p ohos.permission.CAMERA

#按应用tokenid和权限名查询权限使用记录
atm dump -r -i ********* -p ohos.permission.CAMERA