Android M(6.0) 静默安装和静默卸载经验分享

本文分享了在Android M(6.0)上实现应用的静默安装和静默卸载的方法。静默卸载通过PackageInstaller接口完成,需创建device_owner.xml文件并推送至/data/system。静默安装则需应用具备DELETE_PACKAGES和INSTALL_PACKAGES权限,将apk系统签名后推送到/system/app目录,并确保路径权限正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静默安装和卸载经验:

  1. 静默卸载:

String appPackage ="被卸载应用的包名";
Intent intent = new Intent(mContext, mContext.getClass());
PendingIntent sender = PendingIntent.getActivity(mContext, 0, intent,0);
PackageInstaller mPackageInstaller = mContext.getPackageManager().getPackageInstaller();
mPackageInstaller.uninstall(appPackage, sender.getIntentSender());

 

上面为调用PackageInstaller接口实现静默卸载的简单源码。

 

需要新建一个文件名为device_owner.xml的文件(可以在windows下新建编辑,然后push),写入如下信息:

<?xmlversion="1.0" encoding="utf-8" standalone="yes"?>
<device-owner package="your.owner.app.package.id" name="Yourapp name" />

 

然后通过adb push/data/system中。

 

然后在代码中通过简单源码即可实现静默卸载功能。

 

  1. 静默安装:

静默安装需要root权限,或将app作为系统应用,赋予:

<uses-permissionandroid:name="android.permission.DELETE_PACKAGES"/>

<uses-permissionandroid:name="android.permission.INSTALL_PACKAGES"/>

 

权限之后方能使用 pm install或者 pm uninstall命令实现静默安装或卸载。

方法如下:

首先,将apk进行系统签名(网上说需要先反编译,重新添加AndroidManifest.xml文件中的INSTALLDELETE的权限,但是我这次的情况反编译后发现Manifest文件中有,于是直接进行系统签名即可),之后将apk 通过adb push/system/app/APP名称”下(需要Root权限),随后adb reboot生效。

 

另外需要注意:

待安装的apk的路径,例如/sdcard/download/*.apk  保险起见,每一级目录都要进行权限赋予:

chmod 777 /sdcard

chmod 777 /sdcard/download

chmod 777 /sdcard/download/*.apk

否则安装时会出现 INSTALLED_FAILED_INVALID_URI(意思是无效路径)的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值