LOS 14.1下如何用adb将应用安装到格式化为内部存储的SD卡
解决LOS 14.1下adb无法将应用安装到内部存储化SD卡的问题
我之前在LOS 14.1上也碰到过一模一样的问题——SD卡已经格式化为「内部存储」,但adb install -s死活装不上,不用参数又直接占满内置存储,那些明明能在设置里移去SD卡的应用也不行。折腾了好一阵,总结出几个亲测有效的方案:
方案1:指定SD卡内部存储的具体路径安装
有时候-s参数没法正确识别SD卡的内部存储挂载路径,咱们先自己找对路径再安装:
- 先执行命令查看设备的存储分区信息:
adb shell df
- 在输出里找标注为内部存储的SD卡路径,通常是
/storage/emulated/1或者/data/media/1(不同设备可能略有差异,认准SD卡的容量大小就能区分) - 用指定路径的命令安装APK:
adb install -r -d -p /storage/emulated/1 whatever.apk
这里的参数作用:
-r:覆盖已经安装的同包名应用-d:允许安装版本低于当前的APK(如果是降级安装的话)-p:手动指定安装路径,把上面找到的SD卡路径替换进去就行
方案2:修改系统默认安装位置到SD卡
如果不想每次都手动输路径,可以直接把默认安装位置改成SD卡内部存储,前提是你的设备已经获取root权限(LOS 14.1解锁后很容易获取):
- 执行命令修改全局存储偏好:
adb shell settings put global preferred_external_storage /storage/emulated/1
- 重启设备之后,再用普通的
adb install whatever.apk命令,应用就会默认装到SD卡了
方案3:重新格式化SD卡为内部存储
有时候SD卡格式化为内部存储后会出现挂载异常,导致adb识别失败,这时候可以重新格式化试试:
- 进入LOS的「设置」→「存储」→选中你的SD卡→点击「格式化内部存储」,按照提示完成操作
- 格式化完成后重启设备,再尝试用
adb install -s whatever.apk命令安装,大概率能解决问题
额外提醒
- 一定要确认你要安装的APK确实支持安装到外部存储(也就是你说的能在设置里移到SD卡的应用),有些系统核心应用或者特殊权限应用本身就只能装在内置存储,强行移动会报错
- 如果已经root,也可以用第三方应用管理工具(比如钛备份)来强制迁移应用到SD卡,但adb命令的方式更直接高效
内容的提问来源于stack exchange,提问作者Nobody




