如何从/system/app中卸载自己的应用程序?

16

我可以使用adb shell命令将自己的应用程序安装到/system/app中,但如何卸载它?是否有任何命令可以执行此操作?我的手机已被root。


1
我猜你可能想浏览一下这个链接 - Relsell
@Relsell的链接已经失效。请查看最新可用的镜像 - Irwin Nawrocki
6个回答

16

使用ADB手动卸载:
http://www.careace.net/2010/05/12/how-to-remove-android-apps-through-adb/

在网站停机期间(比如现在)可以在这里查看抓取的快照:
https://web.archive.org/web/20180222063358/http://www.careace.net/2010/05/12/how-to-remove-android-apps-through-adb/

通过程序:

    public static void deleteFromSystem (final String file)
    {
        try 
        {
            if (new File(file).exists())
            {
                String  path        = new File(file).getParent();
                Process process     = Runtime.getRuntime().exec("su");
                DataOutputStream os = new DataOutputStream(process.getOutputStream());
                os.writeBytes("mount -o rw,remount /system; \n");
                os.writeBytes("chmod 777 "      + path + "; \n");
                os.writeBytes("chmod 777 "      + file + "; \n");
                os.writeBytes("rm -r "          + file + "; \n");
                os.writeBytes("mount -o ro,remount /system; \n");
                os.writeBytes("reboot \n");
                os.flush();
                os.close();
                process.waitFor();
            }
        } 
        catch (Throwable e) {e.printStackTrace();}
    }

我在我的应用程序中尝试了你的代码片段。它已经从主屏幕中删除了。但是,我在卸载应用程序后重新安装应用程序时遇到了问题,它会保留其共享首选项状态。我需要清除首选项。 - Senthil Mg
这段代码给我抛出了以下的IO异常: 工作目录:null 环境变量:null 是的,我使用了正确的应用程序名称。 - Behnam
@ Campiador 你有root权限吗? - XXX
我认为过去它成功地卸载系统应用,而不需要重启。这是卸载系统应用的最佳方法吗? - android developer

15

假设您拥有设备的根访问权限:

adb shell
su
mount -o rw,remount /system
rm -rf /system/app/myApp.apk
rm -rf /data/data/com.example.myapp
mount -o ro,remount /system
exit
exit

谢谢你,你节省了我很多时间! - iroiroys

12
adb shell rm /system/app/MyApp*
adb uninstall org.my.app

3

通过adb卸载Android应用


参考 : xda

adb devices

adb shell

pm list packages

pm uninstall -k --user 0 name of package

1

我不确定是否需要在每个设备上执行此操作(某些设备可能只需通过root访问即可实现),但在htc desire上,您必须重新启动到恢复模式。 然后,您可以将apk复制到sdcard上,然后使用adb shell将其复制到/system/app文件夹中。 您应该首先创建一个nandroid备份。


1
抱歉,我无法阅读 :D 但是在恢复模式下应该可以删除它。 - sherif

0
假设您拥有设备的root访问权限:
adb shell su mount -o rw,remount/system rm -rf /system/app/myApp.apk rm -rf /data/data/com.example.myapp mount -o ro,remount/system exit exit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接