推送到设备

时间:2018-02-14 07:11:33

标签: android shell adb

我想要什么

我想使用shell脚本删除一些google应用程序,使用adb从我的Windows客户端启动。

有什么问题

当我在命令提示符下使用adb / shell使用以下命令时,它可以工作。

pm uninstall --user 0 com.google.android.apps.maps

但是,当我将相同的命令放入shell脚本时,将其推送到我的手机并尝试运行它 - 它会导致应用程序未安装错误!

2 个答案:

答案 0 :(得分:0)

我通过一些解决方法解决了这个问题。 我只是从批处理启动pm uninstall命令,不要将其推送到设备。

像这样:(uninstall.bat)

adb shell pm uninstall --user 0 com.google.android.gm
adb shell pm uninstall --user 0 com.google.android.apps.maps
adb shell pm uninstall --user 0 com.google.android.youtube
pause

答案 1 :(得分:0)

您在Windows系统上创建的脚本包含MS-DOS / Windows样式换行符(即\r\n)。 Android shell使用Linux风格换行符(\n)。因此,您的脚本会在每行的末尾获得额外的\r字符 pm uninstall --user 0 com.google.android.apps.maps变为pm uninstall --user 0 com.google.android.apps.maps\r

您的脚本会尝试卸载名为com.google.android.apps.maps\r的程序包 - 该程序包不存在。

要解决此问题,您需要在使用\r命令将其推送到手机后从脚本中删除所有sed -i 's/\r$//' script.sh