我想要什么
我想使用shell脚本删除一些google应用程序,使用adb从我的Windows客户端启动。
有什么问题
当我在命令提示符下使用adb / shell使用以下命令时,它可以工作。
pm uninstall --user 0 com.google.android.apps.maps
但是,当我将相同的命令放入shell脚本时,将其推送到我的手机并尝试运行它 - 它会导致应用程序未安装错误!
答案 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
。