如何以编程方式卸载Android系统应用程序?

2023-12-13

我可以获得已安装应用程序的列表(用户和系统应用程序)。我还可以卸载用户应用程序,但是无法卸载系统应用程序。

有什么办法可以卸载系统应用吗? 如果手机已经root,下面的代码可以工作吗?

Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:"+appPackageName.getText().toString()));
                        context.startActivity(intent); 

您可以使用以下命令执行 root 命令:

runCommand("su");
runCommand("rm /data/system/application.package.apk");
runCommand("rm /data/data/application.package");

//when this doesn´t work try
runCommand("rm -r /data/system/application.package.apk");
runCommand("rm -r /data/data/application.package");

public static void runCommand(String command){
try {
        Process chmod = Runtime.getRuntime().exec(command);

        BufferedReader reader = new BufferedReader(
                new InputStreamReader(chmod.getInputStream()));
        int read;
        char[] buffer = new char[4096];
        StringBuffer output = new StringBuffer();
        while ((read = reader.read(buffer)) > 0) {
            output.append(buffer, 0, read);
        }
        reader.close();
        chmod.waitFor();
        outputString =  output.toString();
    } catch (IOException e) {
        throw new RuntimeException(e);
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
}

还有一个不错的图书馆:https://github.com/Free-Software-for-Android/RootCommands

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式卸载Android系统应用程序? 的相关文章

随机推荐

  • javax.validation.constraints.Pattern 注释的参数化错误消息?

    我有一个具有类型字段的实体String我在其上定义了一个 Pattern注释强制执行与给定正则表达式匹配的字段内容 现在我想知道是否可以参数化约束 例如在定义的验证错误消息中显示与正则表达式不匹配的第一个字符 更糟糕的是 违反约束时显示的错
  • 在 C 中使用 pow() 函数会引发未定义的引用错误

    为什么下面的代码在 C 中可以工作 int res pow 2 3 printf d n res 而另一个则没有 int a 2 int b 3 int res pow a b printf d n res 即使我尝试 double a 2
  • onSaveInstanceState() 和 onRestoreInstanceState()

    我正在尝试保存并恢复状态Activity使用方法onSaveInstanceState and onRestoreInstanceState 问题是它永远不会进入onRestoreInstanceState 方法 谁能向我解释这是为什么 通
  • Android 自定义相机变焦不起作用

    我看过关于这个主题的其他几个问题 但似乎没有一个能解决我的问题 我有一个自定义相机应用程序 除了变焦按钮之外 一切都工作正常 这是我使用 SDK min 8 target 14 的代码 Override public void surfac
  • 有效计算两个数据集之间的成对半正矢距离 - NumPy / Python

    我想计算经纬度之间的地理距离 我已经检查过这个线程Python 中向量化半正矢距离计算但是当我将它用于两组不同的坐标时 我收到错误 df1 的大小可以是数百万 如果有任何其他方法可以在更短的时间内计算准确的地理距离 那么它将非常有帮助 le
  • 为什么即使没有内存重新分配,在 for 循环中调用 Push_back 也是不安全的?

    当我读到这篇文章时 https stackoverflow com a 42448319 3336423 据我所知 在 for 循环中调用 push back 是不安全的 因为 如果新的 size 大于容量 则所有迭代器和 引用 包括尾后迭
  • \n 不起作用,不会换行

    我正在创建一个小程序 它将 int 值保存到文本文件中 保存它 并在您再次启动程序时加载它 现在 我需要另外 3 个布尔值存储在文本文件中 我正在文件中写入内容 public Formatter x x format s m getPoin
  • Mailchimp api v3 - 无法基于文本合并字段创建分段

    我正在尝试使用 condition type TextMerge 创建基于我刚刚创建的 TEXT 类型的新合并字段的段 因为它似乎是其文档中与我的字段匹配的唯一选项 http developer mailchimp com document
  • 从关闭的 Excel 文件获取范围

    我一直在尝试从封闭的 Excel 文件中获取数据 到目前为止 还没有发布的解决方案可以在不打开源工作簿的情况下实现此目的 我尝试过使用 ExecuteExcel4Macro 命令 但无法使用该命令 因为我需要 VLOOKUP 的搜索功能 然
  • Python lxml 中的 XML 漂亮打印失败

    我正在尝试使用 Python 2 7 6 中的 lxml 4 1 1 读取 修改和写入 XML 文件 My code import lxml etree as et fn xml in in xml parser et XMLParser
  • 将自定义类与向量一起使用:“std::vector”默认构造函数错误

    我正在尝试创建一个定义项目的类和另一个定义库存的类 其中包含项目的向量列表 但是 通过下面的解决方案 我遇到了多个错误 最值得注意的是 std vector no appropriate default constructor availa
  • 无法单击 Selenium Webdriver 中的单选按钮

    我正在使用 Java 学习 Selenium Webdriver 作为学习示例 我尝试打开打造我的旅行 使用权国际航班页面并点击One WayGoogle Chrome 中的单选按钮 我尝试了不同的方法来找到这个单选按钮 但它仍然不起作用
  • GNU readline 和键绑定

    I ve read from the GNU getline documentation that it s capable for binding some callback functions to some keys I know a
  • 如何更改 NetCDF 中的经度范围

    我的 NetCDF 文件有 4 个维度 经度 纬度 时间 水平压力 和几个变量 我想将经度数据 340 342 344 360 0 2 4 18 20 替换为 20 18 16 2 0 2 4 18 20 事实上 经度是从 0 到 360
  • 恢复保存的 TensorFlow 模型以在测试集上进行评估

    我见过几个posts恢复时TF模型和Google文档页面位于导出图表但我想我错过了一些东西 我使用这个中的代码Gist将模型与此 utils 文件一起保存到其中defines该模型 现在我想恢复它并在以前未见过的测试数据中运行 如下所示 d
  • 如何将 python 包包含在 Hadoop 流作业中?

    我正在尝试在 Hadoop 流作业中包含一个 python 包 NLTK 但我不确定如何在不通过 CLI 参数 file 手动包含每个文件的情况下执行此操作 编辑 一种解决方案是在所有从属设备上安装此软件包 但我目前没有该选项 刚刚发现了这
  • 如何使用 pygame.mixer.music.play() 重复播放歌曲?

    我尝试使用 pygame 模块重复播放歌曲 mp3 代码如下 来自网站https www studytonight com tkinter music player application using tkinter调用这个函数的时候 只输
  • 如何在 CSS 中并排设置背景图像

    我试图让一个容器并排放置两个背景图像 这样我就可以将一些文本放在两个图像的顶部居中 截至目前 我只能显示一张背景图像 如何将它们滑开 HTML
  • 颤振中的生命周期

    flutter 有没有类似的方法Activity resume 这可以告诉开发人员用户已经返回到该活动 当我在Page B中从互联网上获取数据并返回Page A时 如何让Page A知道数据已准备好 METHOD DESCRIPTION 1
  • 如何以编程方式卸载Android系统应用程序?

    我可以获得已安装应用程序的列表 用户和系统应用程序 我还可以卸载用户应用程序 但是无法卸载系统应用程序 有什么办法可以卸载系统应用吗 如果手机已经root 下面的代码可以工作吗 Intent intent new Intent Intent