adb shell install -g安装APK报错,如何自动授予运行时权限?
问题原因与正确操作方法
为啥会报错?
你搞混了两类完全不同的命令:
adb install -g my.apk是电脑端ADB工具的命令,本身支持-g参数(自动给APK开所有运行时权限),所以能正常运行。adb shell install调用的是Android设备自带的原生install命令,这个命令根本没有-g选项,而且语法要求必须传两个参数(源文件路径、安装目标路径),这就是你各种报错的根源。
符合文档要求的正确操作
如果要按文档说的用设备端命令实现自动授权安装,得用系统包管理器的pm install命令,步骤如下:
- 先把APK传到设备里,比如传到/sdcard目录:
adb push my.apk /sdcard/ - 执行设备端的包管理器安装命令,带上
-g参数:
这里的adb shell pm install -g /sdcard/my.apk-g参数就是用来自动授予所有运行时权限的,效果和adb install -g一样,完全符合官方文档的要求。
补充说明
有些旧模拟器或者定制ROM里,可能把pm install封装成了带-g的install命令,但标准Android 13系统里,原生install命令不支持这个参数,必须用pm install才行。
内容的提问来源于stack exchange,提问作者Nicolas Raoul
相关产品推荐
相关产品推荐

