导语:随着智能移动设备的普及,越来越多的运营商和OEM厂商以将其锁定自己的滩头营销阵地,恨不得在设备一出场时就预装上自己所有的软件。这样做的好处有两个,一个是这些软件能永久的安装在你的设备上,对运营商来说能起到一劳永逸的推广效果

timg.jpg

随着智能移动设备的普及,越来越多的运营商和OEM厂商以将其锁定自己的滩头营销阵地,恨不得在设备一出场时就预装上自己所有的软件。这样做的好处有两个,一个是这些软件能永久的安装在你的设备上,对运营商来说能起到一劳永逸的推广效果。另一个是好处是OEM 厂商可以利用此方法收取大量推广费用。

于是买手机的时候经常会出现以下情况,明明说的存储空间有4G,可买回家一看发现剩余空间不到1G了,查来查去才知道原来是预装软件太多,占去了大部分的存储空间。更可气的是,这些预装软件你几百年都可能用不到,这样的软件被称作膨胀软件(Bloatware),又称作肥胖软件(fatware)。不论bloatware还是fatware都是对那些浪费存储空间软件的贬义称呼,而它们浪费空间的方式也多种多样。

占用大量空间不说,有时这些膨胀软件甚至还会自动联网悄悄吃掉你的流量,可以说是个“流量黑洞”。更重要的是,有些膨胀软件还会盗取你的各种运行数据和隐私,简直就是流氓软件。

虽然你可以通过获取Root权限后自行删除,但这也意味着你失去了保修权益。虽然也有XDA助手这样的工具来综合优化手机软件,但必定不能从根子上彻底解决问题。

那么有没有一种办法,能在无需ROOT的条件下卸载这些膨胀软件呢?今天,我就在本文中为你介绍一个无需ROOT就能卸载的办法,你要做的就是只需在命令提示符中进行一些简单的ADB命令。

建议你点此先看一下整个过程的视频操作,以方便我以下的讲解。

具体操作过程

1.为你的移动设备安装USB驱动程序,你可以点此查看Google列出的一些通用USB驱动程序。

2.为你的运行操作系统(Windows,Mac,Linux)下载对应的ADB二进制文件

3.将zip文件解压缩到可以快速访问的文件夹中。

4.进入你手机上的设置选项,然后选择“关于手机”选项。找到版本号,对着它连续点击7次或是很多次,直到开发者模式打开, 开发者选项就会出现在设置项。

5.现在进入开发者选项并找到USB调试,启用它。

1.jpg

6.将手机插入计算机,并将其从“仅充电”模式更改为“文件传输(MTP)”模式。

7.此时在你的计算机上,就可以浏览到你提取ADB二进制文件的目录。

2.png

8.在ADB文件夹中启动命令提示符,对于Windows用户来说,可以先按住Shift,然后单击右键,选择“open command prompt here”选项来完成。

3.png

9.一旦进入命令提示符或终端,输入以下adb devices命令。

10.此时,你将看到系统正在启动adbd(adb daemon) 进程。如果这是你第一次运行ADB,你将在手机上看到一个提示,要求你授权与计算机建立连接,你需要点击”OK”即可。

4.jpg

11.现在,如果你重新运行adb devices命令,终端将打印你设备的序列号。如果是这样,那么你就可以进行下一步了。

12.输入adb shell命令:

5.png

13.执行“pm list packages | grep '<OEM/Carrier/App Name>'” 命令,查找应用的包名(Package Name),package name是Android系统中为每一个应用程序分配的一个标识,每个应用的标识都必须是不同的。

6.png

14.如果你觉得上一步太麻烦,你还可以通过在手机上安装App Inspector应用程序,轻松找到已安装的应用包名,不过前提是你要知道你即将卸载的应用程序的名称。

7.1.jpg

第一步:进入 “App List”选项

7.2.jpg

第二步:找到你想要卸载的应用,例如上图中的 “Compass”

7.3.jpg

第三步:在应用程序名称下找到包名,例如上图中的“com.huawei.compass”

15.执行 “pm uninstall -k –user 0 <name of package>”来卸载特定的系统应用程序。

8.jpg

不过我要在强调一下以上操作有可能带来的风险,卸载系统应用程序可能会触发一些非常危险的附带后果,所以请在卸载前先想明白该软件对你的影响程度,否则盲目的操作可能会导致你的手机无法使用,这样你就不得不进行出厂重置了。还有一种情况就是,你要卸载的预装软件可能是对你常用的一个应用的支持,如果你盲目的删除了它,和可能会让另一个应用也发生故障,比如你的保存信息有可能会被删除。不过如果你得卸载的不对,那么你没有必要净化,可以通过恢复出厂设置,以恢复原样,因为这些卸载的系统应用程序可以在出厂设置后重新显现。

这意味着这些膨胀软件还是没有真的从设备中被卸载,我的方法也只不过是让它们从当前用户的运行环境中被删除,不过这也样也能达到保护设备的目的。据我的推测,这些膨胀软件是安装在设备默认的用户“user 0”的运行环境中,这也解释了为什么你在当前环境中执行本文的操作时,一定要使用带有“-user 0”和“-k”的删除命令,否则达不到真正的卸载效果。这两个命令分别会针对当前用户进行卸载,否则该命名就会针对所有用户环境进行卸载,包括“user 0”,如果是不将“user 0”排除在外,则需要用到Root 权限。也就是说按照本文我说的方法,你即使卸载了不用的程序,那些程序的缓存和数据还是会被保留下来。因此,日后你仍可从运营商或OEM接收到它们的更新通知。

目前该方法已在许多设备上进行了实际验证,如LG G6Google PixelGalaxy S8等。如果你愿意,也可以在你的设备上尝试一下。

源链接

Hacking more

...