
[JD.com] Android Studio开发实战: 从零基础到应用发布(第二版)
[JD.com] Android软件安全性权威指南
[JD.com] Android高级解密
深入研究Android安全架构(美国)Nikolay Elenkov
任玉刚对Android开发艺术的探索
疯狂的Android讲座(第3版)免费CD-ROM李刚

完成步骤: 卸载没有root完整版本的预设APP
同时推送到微信公众号: 灰色ROM注释
首先,我们需要知道系统中预装有三种应用程序:
不可卸载
没有root权限,不能卸载此部分. 例如电话,短信,日历等. 可以卸载和还原
该部分没有root用户权限,用户可以卸载它,但是他们将在恢复出厂后恢复. 例如免root系统程序卸载器,许多在EMUI中预设的第三方APP. 可以卸载而无法恢复

此部分已在数据分区中预设. 数据分区是用户存储数据的分区,工厂清除数据时也会清除APP的这一部分. 这种情况通常用于特殊目的,例如在出厂前测试一些硬件和软件工具应用程序. 经过测试并恢复出厂后,用户将不会有感觉.
通常说卸载预置应用程序是第一种,但是如上所述,未经root用户许可就无法卸载,不是标题方吗?
实际上,本文要介绍的方法与上述第二种情况相似. 尽管可以在没有root用户的情况下卸载预设应用程序,但它不会完全删除APK并使其无法恢复(一般完全删除root之后的一般删除).
好吧,事不宜迟,步骤如下:
1. 激活开发人员模式并打开USB调试.
2. 连接计算机并打开cmd窗口.

3. adb shell进入shell模式.
4. 获取要卸载的应用程序的程序包名称,如下所示:
C:\Users\ShawnXia>adb shell
em_t8811a_emmc:/ $ pm list packages
package:com.android.fmradio
package:com.mediatek.camera
package:com.android.providers.calendar
……
此方法比较了的耐心和运气(也许您认为不是您想的),如果您知道该关键字,则可以这样搜索:
em_t8811a_emmc:/ $ pm list packages | grep "camera"
package:com.mediatek.camera
em_t8811a_emmc:/ $
em_t8811a_emmc:/ $ dumpsys window | grep mCurrentFocus
mCurrentFocus=Window{33613e4 u0 com.baidu.haokan/com.baidu.haokan.app.activity.HomeActivity}
em_t8811a_emmc:/ $

此处的窗口{}是此接口的程序包名称类名称,程序包名称为: com.baidu.haokan
5. 获取软件包名称后,下一步是卸载应用程序. 命令如下:
pm uninstall -k --user 0 packageName
此命令的含义是卸载用户0的packageName应用程序. 以上一步中的com.baidu.haokan为例:
em_t8811a_emmc:/ $ pm uninstall -k --user 0 com.baidu.haokan
Success
em_t8811a_emmc:/ $
-k表示保存数据,如果不需要,可以删除-k.
-user指定用户ID,Android系统支持多个用户,默认用户仅为1免root系统程序卸载器,id = 0.
这时,系统的预设应用程序已卸载. 在某些情况下,您可能会在“设置”>“应用程序”列表中看到“未为此用户安装”字样. 此操作无效,重新启动后将消失.
此笔记已推送至微信公众号: 灰色的Rom笔记
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-182195-1.html
实弹射击
而今迈步从头越
靠分红成吗