如何强制删除Android上预装的应用程序!您还可以卸载/禁用无法删除的标准软件。

在本文中,通常无法删除和禁用预装应用程序强行擦除我会解释如何做。

电脑adb环境如果你有的话,就可以通过相对简单的操作来实现。

在这一部分中,我们将解释使用 adb 命令的具体步骤。

说明流程

  • 前提

    强制禁用或删除应用程序意味着什么? -优点/缺点-

  • 说明①

前提:强制禁用或删除应用程序意味着什么? -优点/缺点-

通常,对于 Android 上不必要的应用程序,卸载删除)或者禁用您可以执行此过程。

▼卸载和禁用的区别

除了一些预装的应用程序之外,您基本上可以卸载任何应用程序。

卸载记事本应用程序的示例。

另一方面,一些预装的应用程序无法删除,但可以选择禁用它们。

禁用 Osaifu-Keitai 应用程序的示例。

如上所述,即使它是预装的应用程序,也有办法阻止它运行。

但是,有些特殊应用程序无法卸载或禁用。

例如 Xperia Assist(左)和 docomo Application Manager(右)。

事实上,只要你的计算机上有 adb 环境(不需要 root 权限),就可以通过相对简单的操作来禁用或卸载此类预装应用。

(左)禁用 Xperia Assist(右)删除 docomo Application Manager

以下是此方法的优点/缺点。

优点是您可以停止过去无法删除或禁用的应用程序,进一步减轻设备的负载。

另一方面,缺点是它本身就存在限制,因为它在预装应用程序中发挥着重要作用,并且存在停止该功能会导致智能手机操作出现问题的风险。

另外,由于是使用adb命令强制删除的,因此可能需要初始化才能恢复。

本文提供了有关如何运行 adb 命令的详细说明和相关信息。

如何使用adb命令删除系统应用

如上所述,某些预装的 Android 应用程序可能无法删除或禁用。

另一方面,如果您在计算机上使用 adb 命令,则可以克服此限制并禁用或删除它。

▼强制禁用

adb shell pm disable-user --user 0 <アプリのパッケージ名>

▼强制卸载

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

两个命令(强制卸载/禁用)之间的区别如下。

*2:强制卸载(pm uninstall)兼容Android 5.0或更高版本,强制禁用(pmdisable-user)兼容Android 7.0或更高版本。如果您使用的是较旧的操作系统版本,请使用本文后面提供的替代命令。注意,对于强制卸载后的重新安装,该命令仅适用于Android 8.0及以上版本,因此对于Android 5.x-7.x来说,不初始化是无法恢复的。

我将按以下顺序解释它们:

  1. 电脑上准备adb环境
  2. 找到您要禁用或删除的应用程序的包名称
  3. 使用 adb 命令禁用应用程序 (pmdisable-user)
  4. 使用adb命令卸载应用程序(pm uninstall)

1.在电脑上准备adb环境

在你的电脑上亚行命令请准备好可以使用的环境。

相关文章中介绍了适用于 Windows 和 Mac 的步骤。

您还需要一根电缆来连接您的计算机和 Android。

根据智能手机 USB 端子(micro USB / Type C)的形状准备一个。

而且设置系统开发者选项打开USB调试请启用它。

2.检查您要禁用或删除的应用程序的包名

运行adb命令时,需要指定目标应用的包名。

[什么是包名称?] – 为每个应用程序确定的唯一字符串(=应用程序 ID)。如果包名不同,即使名称相同,应用程序也会被识别为不同的应用程序。

▼包名示例

同一应用程序的不同版本可能具有不同的包名称。我们建议您在自己的设备上实际检查一下。

查找包名称的方法有多种,例如:这个应用程序很有用。

(左)红线代表包名 (右)通过关键字方便缩小范围

3.使用adb命令禁用应用程序(pmdisable-user)

从这里开始,我们将介绍 adb 命令来强制禁用应用程序。

我们稍后会讨论“卸载”方法,但首先尝试这种“禁用”方法,因为恢复它有很大的风险。

这里介绍的命令(pmdisable-user)兼容Android 7.0或更高版本。

用USB连接Android后,在电脑端输入adb命令。

粘贴下面的命令,然后在“应用程序包名称”中输入要禁用的应用程序。

adb shell pm disable-user --user 0 <アプリのパッケージ名>

请注意,“user”之前有两个连字符。

例如使用 Xperia Assist 时,它将如下所示:

adb shell pm disable-user --user 0 com.sonymobile.assist_light

如果显示以下消息则确定(Xperia Assist 示例)。

Package com.sonymobile.assist_light new state: disabled-user

如果设置中的应用信息中状态为“已禁用”,则说明成功。

Xperia Assist(左)和 docomo LIVE UX(右)被禁用的示例。

如果要恢复它,请输入以下命令。

adb shell pm enable <アプリのパッケージ名>

例如使用 Xperia Assist 时,它将如下所示:

adb shell pm enable com.sonymobile.assist_light

如果显示以下消息则确定(Xperia Assist 示例)。

Package com.nttdocomo.android.applicationmanager new state: enabled

“已禁用”状态将在设置中的应用程序信息中消失。

Xperia Assist 返回原始状态的示例。

这就是解释。

即使你使用其他app,只要改变包名,执行的命令都是一样的。

▼强制禁用

adb shell pm disable-user --user 0 <アプリのパッケージ名>

▼恢复

adb shell pm enable <アプリのパッケージ名>

缺点是一些预装的应用程序可能不起作用,重启后会自动恢复到原来的状态。

在我的验证环境中,docomo 应用程序管理器受到影响。

重新启动后从禁用恢复为启用的示例。

作为解决方案,请尝试更强大的卸载命令(pm uninstall)。

稍后我会介绍他们。

4.使用adb命令卸载应用程序(pm uninstall)

从这里开始,我将介绍adb命令来强制卸载应用程序。

通过这种方法,您可以更有效地停止应用程序。另一方面,恢复数据存在较高风险,如果过程失败,则需要初始化。

这里介绍的命令(pm uninstall)兼容Android 5.0或更高版本。但是,只有重新安装命令(cmd package install-existing)与Android 8.0或更高版本兼容。

用USB连接Android后,在电脑端输入adb命令。

粘贴下面的命令,然后在“应用程序包名称”中输入要卸载的应用程序。

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

请注意,“user”之前有两个连字符。

例如使用 docomo Application Manager,它将如下所示:

adb shell pm uninstall -k --user 0 com.nttdocomo.android.applicationmanager

显示“成功”则表示成功。

如果设置中的应用信息显示“未安装”,则说明安装成功。

未安装 docomo Application Manager(左)和 Style Cover(右)的示例。

如果要恢复它,请输入以下命令。

adb shell cmd package install-existing <アプリのパッケージ名>

例如使用 docomo Application Manager,它将如下所示:

adb shell cmd package install-existing com.nttdocomo.android.applicationmanager

如果显示以下消息则确定(docomo 应用程序管理器的示例)。

Package com.nttdocomo.android.applicationmanager installed for user: 0

“未安装”状态将从“设置”中的应用程序信息中消失。

docomo Application Manager 返回到原始状态的示例。

这是一种恢复被强制卸载的应用程序的机制。

卸载时输入的adb命令如下,仅删除当前登录的“用户0”。

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

实际消息还显示“未为此用户安装”。

▼pm uninstall 选项的含义

参考 Google 开发者 – Android 调试桥

用户0是指默认的主用户。

因此,被删除的应用程序仍保留在 Android 内部,因此您可以通过输入以下命令来恢复它。

adb shell cmd package install-existing <アプリのパッケージ名>

然而,也存在各种缺点。

首先,Android 7.x 或更早版本不支持此命令。

此外,即使在 Android 8.x 或更高版本上,也可能存在由于执行不带“-k”或“-user 0”部分的命令等原因而无法撤消命令的情况。

在这种情况下,您需要从提前备份的 apk 文件重新安装。

如果准备apk文件有困难,则需要初始化设备。

这些是强制禁用或删除 Android 预装应用程序的步骤。

执行的adb命令很简单,只要能找到目标应用程序的包名就没有障碍。

另一方面,我想重申,这些预装的应用程序预计不会停止运行,也没有经过制造商的验证。

在尝试此操作之前,请注意可能会出现意外故障。

补充:关于强制删除Android应用程序的注意事项

在本部分中,我们将提供有关使用 adb 命令强制删除应用程序的详细信息。

其中包含一些极客内容,所以如果您感兴趣的话请查看。

说明流程

  • 补充①

    适用于 Android 5.0 及更早版本的 adb 命令 -pm block/pm hide-

  • 补充②

  • 补充③

适用于 Android 5.0 及更早版本的 adb 命令 -pm block/pm hide-

正如文章开头介绍的,上一部分提到的 adb 命令是有操作系统要求的。

▼强制禁用(兼容Android 7.0以上)

adb shell pm disable-user --user 0 <アプリのパッケージ名>

▼强制卸载(兼容Android 5.0以上)

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

事实上,有一个针对旧操作系统版本的专用命令。

▼强制禁用(兼容Android 4.4)

adb shell pm block <アプリのパッケージ名>

▼强制禁用(兼容Android 5.x)

adb shell pm hide <アプリのパッケージ名>

这有点令人困惑,所以这里有一个表格来整理它。

如果您继续使用旧操作系统的终端,请使用 pm block/pm hide。

我们将逐一介绍,供您参考。

对于 Android 4.4 KitKat – pm 块

粘贴下面的命令,然后在“应用程序包名称”中输入要禁用的应用程序。

adb shell pm block <アプリのパッケージ名>

例如在 Chrome 中,它看起来像这样:

adb shell pm block com.android.chrome

如果显示以下消息则确定(Chrome 示例)。

Package com.android.chrome new blocked state: true

如果要恢复它,请输入以下命令。

adb shell pm unblock <アプリのパッケージ名>

如果显示以下消息则确定(Chrome 示例)。

Package com.android.chrome new blocked state: false

这里介绍的adb命令仅适用于Android 4.4 KitKat。

如果我在任何其他操作系统版本上运行它,我会收到以下错误消息:

Error: unknown command 'block'

在 Android 4.4 以外的设备上显示错误

对于 Android 5.0 Lollipop – pm hide

粘贴下面的命令,然后在“应用程序包名称”中输入要禁用的应用程序。

adb shell pm hide <アプリのパッケージ名>

例如新功能看起来像这样:

adb shell pm hide com.sonymobile.entrance

如果显示以下消息则确定(新增内容示例)。

Package com.sonymobile.entrance new hidden state: true

如果要恢复它,请输入以下命令。

adb shell pm unhide <アプリのパッケージ名>

如果显示以下消息则确定(新增内容示例)。

Package com.sonymobile.entrance new hidden state: false

这里介绍的adb命令仅适用于Android 5.x Lollipop。

如果您在其他操作系统版本上运行它,您将收到如下错误消息:

Error: java.lang.SecurityException: Neither user xxxx nor current process has android.permission.MANAGE_USERS.

Android 5.x 以外的设备上显示的错误

adb命令显示错误的原因及解决方法

以下是执行 adb 命令时出现的主要错误的一些示例。

如果您遇到同样的错误,请参阅此内容。

错误:未知选项:-u

如果显示以下错误,请确保您在“user”之前输入了两个连字符。

Error: Unknown option: -u

例如,如果要强制卸载,输入的命令如下。

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

请小心,因为“用户”之前只有一个连字符的错误很多,如下所示。

adb shell pm uninstall -k -user 0 <アプリのパッケージ名>

错误:java.lang.SecurityException:权限拒绝

如果出现如下错误,可能是执行的命令与操作系统版本不兼容。

Error: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=xxxx, uid=xxxx, package uid=xxxx

例如,执行以下命令时显示上述情况:

adb shell pm disable-user --user 0 <アプリのパッケージ名>

它兼容Android 7.0或更高版本,因此如果您使用Android 6.x或更低版本会出现错误。

错误:未知选项:–user

如果出现如下错误,可能是执行的命令与操作系统版本不兼容。

Error: Unknown option: --user

例如,执行以下命令时显示上述情况:

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

它兼容Android 5.0或更高版本,因此如果您使用Android 4.x或更早版本会出现错误。

/system/bin/sh: cmd: 未找到・未知命令: install-existing

执行强制卸载(pm uninstall)后输入以下命令进行恢复时会显示此信息。

adb shell cmd package install-existing <アプリのパッケージ名>

它兼容Android 8.0或更高版本,因此如果您使用Android 7.x或更早版本会出现错误。

▼适用于Android 6.x或更早版本

/system/bin/sh: cmd: not found

在运行 Android 6.0 的设备上执行的示例。失败。

▼适用于Android 7.x

Unknown command: install-existing

在运行 Android 7.0 的设备上执行的示例。失败。

失败 [DE​​LETE_FAILED_DEVICE_POLICY_MANAGER]

如果显示以下错误,则有问题的应用程序是设备管理应用程序可以将其设置为 。

Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]

[什么是设备管理应用程序?] - 需要 Android 管理员访问权限才能提供特定功能的应用程序。与安全相关的功能(例如与 MDM 相关的应用程序/控制睡眠的应用程序)通常就是这种情况。

作为解决方案,关闭权限。

我们以Xperia XZ(Android 8.0)的屏幕为例进行说明。

从设置应用程序和通知特殊应用程序访问并继续,

设备管理应用程序取消勾选相应的应用程序。

取消选中远程初始化应用程序的示例。

禁用此设备管理应用程序执行一下就OK了。

错误:找不到设备/模拟器...等

如果显示以下错误,则说明通过USB连接到电脑的Android无法正确识别。

▼错误示例1

error: no devices/emulators found

▼错误示例2

error: device unauthorized

错误示例:未找到设备/模拟器。

请检查以下两点,因为它们通常是原因。

  • 您是否启用了 Android USB 调试?
  • 您是否选中“始终允许从此计算机进行 USB 调试”?

如何重新安装已删除的预装应用程序

正如文章中介绍的,有一个命令可以恢复已删除的预装应用程序。

▼强制卸载

adb shell pm uninstall -k --user 0 <アプリのパッケージ名>

▼恢复

adb shell cmd package install-existing <アプリのパッケージ名>

但是,Android 7.x 或更早版本不支持此命令,因此您需要使用其他方法重新安装它。

这里我们将介绍三种主要方法。 ① 和 ② 是旁加载 apk 文件的方法,③ 是如何初始化它。

[什么是 apk 文件?] – 组成 Android 应用程序的包。文件扩展名是.apk

预装的我们将以恢复 What's New 的案例为例来解释每个案例。

①:从提前备份的apk文件重新安装

即使它是预装的应用程序,Android 设备内部也存在 APK 文件。

如果您提前提取该文件,则可以在删除后从备份文件中恢复它。

有很多方法可以做到这一点,但这里我们将使用 adb 命令作为示例。

首先,找出apk文件的保存位置。

粘贴下面的命令,并在“应用程序包名称”中输入您要提取apk的应用程序。

adb shell pm list packages -f | findstr <アプリのパッケージ名>

如果您的计算机是 Mac,请将“findstr”替换为“grep”。

指定 What's New 的包名称的示例。

然后,“package”后面显示的“~.apk”部分表示应用程序保存的“路径”(新增内容示例)。

/system/priv-app/sonyentrance2-release/sonyentrance2-release.apk

现在您知道 apk 文件保存在哪里了。

最后,粘贴以下命令并在“应用程序路径”中输入确认的位置。

adb pull <アプリのパス>

然后提取过程将开始,一段时间后,APK 文件将保存在您的计算机上。

备份现已完成。

删除预装应用程序后,您可以通过从此 apk 文件重新安装来恢复它。

②:从网上获取的apk文件重新安装

预装应用程序的APK文件分布在互联网上的各个站点上。

您可以通过从其中找到所需的 apk 并将其安装在 Android 上来恢复它。

【注意风险,尝试风险自负】 - 在互联网上发布和分发的APK文件是免费的,但存在较高的安全风险,例如第三方恶意篡改APK文件。乍一看,它们与普通应用程序没有什么区别,因此您可能会遇到意想不到的麻烦,例如您的个人信息在您不知不觉中被盗。

首先,搜索您想要获取的应用程序的名称。

下载的apk文件通常保存在以下位置:

本体ストレージ/Download

使用文件管理应用程序查看并安装它。

③:初始化主机

您可以通过初始化 Android 设备来恢复已删除的预装应用程序。

当然,所有数据都会被删除,因此这不是一个容易实现的方法,但优点是没有旁加载APK文件的麻烦。

〆:删除不需要的系统应用程序!

多于,如何强制删除Android上预装的应用程序!您还可以卸载/禁用无法删除的标准软件。这就是解释。

通过这种方法,您可以通过卸载或禁用来强制删除被阻止的应用程序。

另一方面,在很多情况下,此类应用程序扮演着与内部系统紧密相连的角色,因此一次性将其全部删除是有风险的。

我们建议提前在互联网等上收集信息,然后对不需要的应用程序执行 adb 命令。

请随意使用此作为参考。

参考 XDA – 如何在没有 root 的情况下禁用 Android 上任何预装的系统应用程序膨胀软件

参考 XDA – 如何在没有 Root 访问权限的情况下卸载运营商/OEM Bloatware