簡體   English   中英

Android-將其他系統應用程序卸載為系統應用程序

[英]Android - uninstall other system app as system app

我的應用程序在自定義AOSP映像上作為系統應用程序運行。 我可以卸載/安裝從后端下載的其他APK。 但是,我無法卸載其他系統應用程序(這對我來說是一項硬性要求)。 我當前的機制是通過反射從Android軟件包管理器使用deletePackage機制:

val cPackageManager = Class.forName("android.content.pm.PackageManager")
cPackageDeleteObserver = Class.forName("android.content.pm.IPackageDeleteObserver")
deletePackage = cPackageManager.getMethod("deletePackage", String::class.java, cPackageDeleteObserver, Integer.TYPE)
deletePackage!!.invoke(context.packageManager, packageName, deleteObserver, DELETE_ALL_USERS)

有人知道如何實現我的目標嗎?

  1. 您是否不需要成為具有root用戶權限的設備才能卸載System apps ,還是找到了一種無需任何root用戶權限即可執行此操作的方法?

  2. 由於運行了SELinux,因此必須remount系統,才能重新排列系統中的鎖定文件。

3.您可以在應用中運行此代碼

try{
 Process su = Runtime.getRuntime().exec("su");
 DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

 outputStream.writeBytes("pm uninstall com.package.name");
 outputStream.flush();
 outputStream.writeBytes("exit\n");
 outputStream.flush();
 su.waitFor();
}catch(IOException e){
 throw new Exception(e);
}catch(InterruptedException e){
 throw new Exception(e);
}

如果pm uninstall不起作用,請使用rm -rf path/deletefolder然后重新啟動系統

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM