如何通过adb shell安装.apks文件 解决pm install报错问题
报错原因
.apks 不是单文件APK安装包,是Android App Bundle生成的拆分APK归档压缩包,内部打包了基础APK、对应不同CPU架构/屏幕密度/语言资源的拆分APK、配置描述文件,系统自带的pm install命令仅支持识别单个APK文件,直接传入.apks路径必然报错。
正确安装方式
方式一:电脑端直接操作(无需提前把文件推到手机)
不要先执行adb shell进入安卓系统命令环境,直接在电脑的命令终端操作:
- 把后缀为
.apks的文件重命名为.zip,解压到本地单独文件夹 - 删掉解压后文件夹里所有非
.apk后缀的文件 - 执行以下命令,把所有解压出来的apk路径拼在命令后面:
adb install-multiple -r 解压后文件夹里所有apk的完整路径
参数-r代表覆盖安装设备上已存在的同包名应用,可按需添加。
方式二:.apks文件已经存放在手机存储内操作
- 进入
adb shell环境,先创建临时解压目录,把apks文件解压到对应目录:
mkdir -p /sdcard/tmp_apk_install unzip /sdcard/TestApp.apks -d /sdcard/tmp_apk_install/
- 执行多APK安装命令,传入目录下所有apk文件:
pm install-multiple /sdcard/tmp_apk_install/*.apk
注意事项:Android 11及以上版本执行安装前,需要先给shell组件授予安装权限:pm grant com.android.shell android.permission.INSTALL_PACKAGES;小米、华为等定制ROM需要提前在系统设置中,给ADB调试/终端应用开启「允许安装未知来源应用」权限,否则会抛出权限拒绝错误。
不要尝试直接把
.apks重命名为.apk安装,内部是多文件拆分结构,重命名后依然无法通过安装包结构校验、签名校验,一定会安装失败。
内容的提问来源于stack exchange,提问作者YashRaj
相关产品推荐
相关产品推荐

